OpenGL ES 1.1 iPhone-深度缓冲区导致洋红色屏幕

OpenGL ES 1.1 iPhone-深度缓冲区导致洋红色屏幕,iphone,opengl-es,Iphone,Opengl Es,我有一个iPhone OpenGL ES 1.1项目,可以渲染简单的3D模型。如果我没有附加深度缓冲区,所有内容都会正确渲染(当然没有深度感知的情况除外)。然而,当我附加深度缓冲区时,所有渲染都是洋红色屏幕。清除颜色未设置为洋红色。它是蓝色的。任何人都知道这里发生了什么。这是我的设置代码=> glGenFramebuffersOES(1, &framebuffer); glBindFramebufferOES(GL_FRAMEBUFFER_OES, framebuffer

我有一个iPhone OpenGL ES 1.1项目,可以渲染简单的3D模型。如果我没有附加深度缓冲区,所有内容都会正确渲染(当然没有深度感知的情况除外)。然而,当我附加深度缓冲区时,所有渲染都是洋红色屏幕。清除颜色未设置为洋红色。它是蓝色的。任何人都知道这里发生了什么。这是我的设置代码=>

    glGenFramebuffersOES(1, &framebuffer);
    glBindFramebufferOES(GL_FRAMEBUFFER_OES, framebuffer);

    glGenRenderbuffersOES(1, &colorRenderbuffer);
    glBindRenderbufferOES(GL_RENDERBUFFER_OES, colorRenderbuffer);
    glRenderbufferStorageOES(GL_RENDERBUFFER_OES, GL_RGBA8_OES, screenWidth, screenHeight);
    glFramebufferRenderbufferOES(GL_FRAMEBUFFER_OES, GL_COLOR_ATTACHMENT0_OES, GL_RENDERBUFFER_OES, colorRenderbuffer);

    glGenRenderbuffersOES(1, &depthRenderbuffer);
    glBindRenderbufferOES(GL_RENDERBUFFER_OES, depthRenderbuffer);
    glRenderbufferStorageOES(GL_RENDERBUFFER_OES, GL_DEPTH_COMPONENT16_OES, screenWidth, screenHeight);
    glFramebufferRenderbufferOES(GL_FRAMEBUFFER_OES, GL_DEPTH_ATTACHMENT_OES, GL_RENDERBUFFER_OES, depthRenderbuffer);

这会使屏幕呈现洋红色。注释掉最后4行将导致渲染对象。

可能您的屏幕宽度/屏幕高度尚未初始化

检查以下操作是否解决了您的问题:
GLrenderBuffer存储设备(GLrenderBuffer存储设备,GLrenderBuffer存储设备,GLrenderBuffer存储设备深度组件16,320480)

不完全是这样。它们已初始化,但与我正在绘制的UIView的尺寸不匹配。谢谢,这让我找对了地方