gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 20:00:55 25 4
gpt4 key购买 nike

我有一个 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 行将导致它渲染对象。

最佳答案

可能您的 screenWidth/screenHeight 尚未初始化?

检查以下内容是否可以解决您的问题:glRenderbufferStorageOES(GL_RENDERBUFFER_OES, GL_DEPTH_COMPONENT16_OES, 320, 480);

关于iphone - OpenGL-ES 1.1 iPhone - 深度缓冲区导致洋红色屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3441454/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com