[英]OpenGL-ES 1.1 iPhone - Depth buffer causes magenta screen
I have an iPhone OpenGL-ES 1.1 project that renders simple 3D models. 我有一个iPhone OpenGL-ES 1.1项目,可以呈现简单的3D模型。 If I do not attach a depth buffer, everything renders correctly (except with no depth awareness of course).
如果我没有附加深度缓冲区,则所有内容都会正确呈现(当然除了没有深度感知)。 When I attach the depth buffer however, all that renders is a magenta screen.
但是,当我附加深度缓冲区时,所有呈现的都是洋红色屏幕。 The clear color is not set to magenta.
清晰的颜色未设置为洋红色。 It is blue.
它是蓝色的。 Anyone know what is going on here.
任何人都知道这里发生了什么。 This is my setup code =>
这是我的设置代码=>
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);
This gives the magenta screen. 这给了洋红色屏幕。 Commenting out the last 4 lines will cause it to render the objects.
注释掉最后4行将导致它渲染对象。
probably your screenWidth / screenHeight aren't initialized yet? 可能你的screenWidth / screenHeight尚未初始化?
check if the folllowing fixes your problem: glRenderbufferStorageOES(GL_RENDERBUFFER_OES, GL_DEPTH_COMPONENT16_OES, 320, 480); 检查以下是否解决了您的问题:glRenderbufferStorageOES(GL_RENDERBUFFER_OES,GL_DEPTH_COMPONENT16_OES,320,480);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.