Ich bemerkte, dass, wenn ich meine Tiefenpuffer vor dem Farbpuffer zu binden, die Anwendung wie vorgesehen funktioniert:OpenGL ES 2.0 Buffer-Setup
glGenRenderbuffers(1, &_depthbuffer);
glBindRenderbuffer(GL_RENDERBUFFER, _depthbuffer);
glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT16, _sw, _sh);
glGenRenderbuffers(1, &_renderbuffer);
glBindRenderbuffer(GL_RENDERBUFFER, _renderbuffer);
[_context renderbufferStorage:GL_RENDERBUFFER fromDrawable:_eaglLayer];
jedoch die Bindung des Tiefenpuffer nichts danach verursacht zu machen, auch meine glClearColor Einstellung wird ignoriert:
glGenRenderbuffers(1, &_renderbuffer);
glBindRenderbuffer(GL_RENDERBUFFER, _renderbuffer);
[_context renderbufferStorage:GL_RENDERBUFFER fromDrawable:_eaglLayer];
glGenRenderbuffers(1, &_depthbuffer);
glBindRenderbuffer(GL_RENDERBUFFER, _depthbuffer);
glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT16, _sw, _sh);
ich bekommen habe, durch die Erforschung der einzelnen Komponenten gründlich einen Teil der Strömung, wie OpenGL eS 2.0 Arbeiten zu verstehen, aber dies scheint, als ob es das einzige, was das ist, jeder macht nur in ihren Tutorials/Bücher, erklärt aber nicht warum. Irgendwelche Ideen? Ist das überhaupt ein Problem, oder möglicherweise etwas falsch im Rest meines Setups? (Wenn ja, werde ich umfassen den gesamten Code)
EDIT
@cli_hlt - der Tiefenpuffer bereits hinzugefügt, um die Framebuffer wird:
glGenFramebuffers(1, &_framebuffer);
glBindFramebuffer(GL_FRAMEBUFFER, _framebuffer);
glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, _depthbuffer);
glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, _renderbuffer);
EDIT
Tiefe gebunden vorher:
Tiefe gebunden nach:
Überprüfen Sie die Antwort auf diese Frage: http://stackoverflow.com/questions/4361516/request-a-depthbuffer-in-opengl-es-for-iphone - es scheint, dass Sie fehlen, um die Puffergröße und Anhängen abzufragen es zum Framebuffer. –
Das kommt später; Wenn es nicht dort wäre, würde ich keinen Gebrauch aus dem Tiefenpuffer machen, unabhängig von meiner Frage nach der Reihenfolge der Bestellung. –
Ok. Ist _sw und _sh korrekt? Ich frage wie in der Antwort oben geschrieben, das Antwort-Plakat tat es genau in der zweiten Art und als die Antwort angenommen wurde, nahm ich an, dass es funktionierte. –