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