我试图在android上用opengl es渲染rubix立方体。我是这样做的:我呈现了27个立方体。被覆盖的立方体的脸是用黑色bmp图片纹理的,其他可以看到的脸是用彩色图片纹理的。我用挑脸和深度测试来避免渲染无用的脸。但是看看我得到了什么,这是很棒的。黑脸有时会出现。有人能告诉我如何处理这些文物吗?
截图:




发布于 2013-09-06 05:33:53
从截图的角度看,深度缓冲看起来没有任何效果--你可以得出这样的结论:你先用蓝色的脸来渲染立方体的一侧,然后是后面的中央部分,然后是背面,这样会安全吗?
我对安卓系统的研究有点过头了,但我认为困惑之处可能在于,仅仅在OpenGL内部启用深度测试是不够的。您还必须确保分配深度缓冲区。
可能您对setEGLConfigChooser的调用禁用了深度缓冲区。该方法有许多重载变体,但是单个布尔版本和允许指定redSize、greenSize等的版本可以显式控制是否存在深度缓冲区大小。所以你会想要检查这些。
如果要显式地创建框架缓冲区,那么请确保附加了深度呈现缓冲区。
https://stackoverflow.com/questions/18641333
复制相似问题