我试图在android上使用opengl es渲染rubix立方体。我是这样做的:我渲染了27个相邻的立方体。被覆盖的立方体的面部纹理有黑色bmp图片和其他可以看到的面部纹理与彩色图片。我使用剔脸和深度测试来避免渲染无用的脸。但看看我得到了什么,这是非常奇怪的。黑色的脸有时出现。谁能告诉我如何摆脱文物?
截图:
答案 0 :(得分:2)
有了屏幕截图的好处,看起来深度缓冲根本没有任何效果 - 可以安全地断定你首先用蓝色面渲染立方体的一侧,然后是它后面的中心部分,然后背面?
我对Android的东西略显不足,但我认为混淆可能只是在OpenGL中启用深度测试是不够的。您还必须确保分配深度缓冲区。
你可能会调用setEGLConfigChooser
来禁用深度缓冲区。该方法有一堆重载变体,但是单个布尔版本和允许指定redSize,greenSize等的版本可以让您明确控制是否存在深度缓冲区大小。所以你要检查那些。
如果您正在明确创建帧缓冲区,请确保附加深度渲染缓冲区。