我有一个简单的iPhone OpenGL ES应用程序,我使用纹理渲染全屏背景图像,然后使用线条在其上绘制3D多面体。使用glDrawTexfOES显示纹理。
问题是我似乎无法在背景上显示多面体。在glDrawTexfOES调用中,如果我使用小于1的z值,则背景图像显示但没有多面体。如果z值为1(或更大),则多面体显示但不显示背景图像。
未启用混合。深度测试正在进行中。附加深度缓冲区。只绘制多面体时,深度测试似乎有效。多面体用简单的线条绘制。
z值行为表明多面体的深度缓冲值可能为1 ......?
有关如何显示背景图像和前景对象的任何线索?
答案 0 :(得分:0)
我的猜测是,当您绘制背景图像时,禁用深度蒙版。这样可以确保在放置背景时不会触及深度缓冲区,以便绘制多面体并且不会使深度测试失败。
进行简单测试并缩小背景,然后放大多面体并使用原始算法进行渲染。您应该在任何背景都没有的地方看到几何图形,以及多面体实际通过深度测试的任何地方。