OpenGLESに手を出し、さまざまなレベルの成功を収めています。私の現在の問題は、.objファイルを読み込もうとしていることです。私は現在のプロジェクトで実装してきた素晴らしいGLOBJLoaderを見つけましたが、まだそこにはありません。
これが私のコードです
- (void)createFramebuffer
{
glGenFramebuffersOES(1, &viewFrameBuffer);
NSLog(@"Check 1");
[self checkFrameBuffer];
glGenRenderbuffersOES(1, &viewRenderBuffer);
NSLog(@"Check 2");
[self checkFrameBuffer];
glBindFramebufferOES(GL_FRAMEBUFFER_OES, viewFrameBuffer);
NSLog(@"Check 3");
[self checkFrameBuffer];
glBindRenderbufferOES(GL_RENDERBUFFER_OES, viewRenderBuffer);
NSLog(@"Check 4");
[self checkFrameBuffer];
[context renderbufferStorage:GL_RENDERBUFFER_OES fromDrawable:(CAEAGLLayer*)self.layer];
NSLog(@"Check 5");
[self checkFrameBuffer];
glFramebufferRenderbufferOES(GL_FRAMEBUFFER_OES, GL_COLOR_ATTACHMENT0_OES, GL_RENDERBUFFER_OES, viewFrameBuffer);
NSLog(@"Check 6");
[self checkFrameBuffer];
GLint wide = 320;
GLint high = 480;
glGetRenderbufferParameterivOES(GL_RENDERBUFFER_OES, GL_RENDERBUFFER_WIDTH_OES, &wide);
NSLog(@"Check 7");
[self checkFrameBuffer];
glGetRenderbufferParameterivOES(GL_RENDERBUFFER_OES, GL_RENDERBUFFER_HEIGHT_OES, &high);
NSLog(@"Check 8");
[self checkFrameBuffer];
if(USE_DEPTH_BUFFER)
{
glGenRenderbuffersOES(1, &depthRenderBuffer);
NSLog(@"Check 9");
[self checkFrameBuffer];
glBindRenderbufferOES(GL_RENDERBUFFER_OES, depthRenderBuffer);
NSLog(@"Check 10");
[self checkFrameBuffer];
glRenderbufferStorageOES(GL_RENDERBUFFER_OES, GL_DEPTH_COMPONENT16_OES, glWidth, glHeight);
NSLog(@"Check 11");
[self checkFrameBuffer];
glFramebufferRenderbufferOES(GL_FRAMEBUFFER_OES, GL_DEPTH_ATTACHMENT_OES, GL_RENDERBUFFER_OES, depthRenderBuffer);
NSLog(@"Check 12");
[self checkFrameBuffer];
}
}
-(void)checkFrameBuffer
{
GLuint returned = (glCheckFramebufferStatus(GL_FRAMEBUFFER_OES));
if(returned != GL_FRAMEBUFFER_COMPLETE_OES)
{
NSLog(@"Error code: %x -->", returned);
switch (returned) {
case GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES:
NSLog(@"Incomplete: Dimensions");
break;
case GL_FRAMEBUFFER_INCOMPLETE_FORMATS_OES:
NSLog(@"Incomplete: Formats");
break;
case GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES:
NSLog(@"Incomplete: Missing Attachment");
break;
case GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES:
NSLog(@"Incomplete: Attachment");
break;
default:
NSLog(@"Complete");
break;
}
}
}
createFrameBuffer()メソッドは明らかにフレームバッファーを作成するためのものであり、checkFrameBuffer()は単にデバッグを支援し、各ステップの後にフレームバッファーの状態を出力するためのものです。
これから得られる出力は次のとおりです。
- チェック1
- エラーコード:8cdd->
- 完了
- チェック2
- エラーコード:8cdd->
- 完了
- チェック3
- エラーコード:8cd7->
- 不完全:添付ファイルがありません
- チェック4
- エラーコード:8cd7->
- 不完全:添付ファイルがありません
- チェック5
- エラーコード:8cd7->
- 不完全:添付ファイルがありません
- チェック6
- エラーコード:8cd6->
- 不完全:添付ファイル
- チェック7
- エラーコード:8cd6->
- 不完全:添付ファイル
- チェック8
- エラーコード:8cd6->
- 不完全:添付ファイル
- チェック9
- エラーコード:8cd6->
- 不完全:添付ファイル
- チェック10
- エラーコード:8cd6->
- 不完全:添付ファイル
- チェック11
- エラーコード:8cd6->
- 不完全:添付ファイル
- チェック12
- エラーコード:8cd6->
- 不完全:添付ファイル
これらの問題はそれが機能するのを妨げており、私は完全に困惑しています。私はOpenGLについてあまりよく知らないので、パッチを当てて学習しようとしていますが、JeffLamarcheの「OpenGLESFromthe Ground Up」を実行したので、少し知っています。
どんな助けでも大歓迎です、そしてあなたがより多くの情報を必要とするならば、遠慮なく尋ねてください!
ありがとう、
マット