1

我有一个简单的 iPhone OpenGL ES 应用程序,我在其中使用纹理渲染全屏背景图像,然后使用线条在其上绘制 3D 多面体。使用 glDrawTexfOES 显示纹理。

问题是我似乎无法在背景顶部显示多面体。在 glDrawTexfOES 调用中,如果我使用小于 1 的 az 值,则背景图像显示但没有多面体。如果 z 值为 1(或更大),则显示多面体但不显示背景图像。

未启用混合。深度测试已开启。附加深度缓冲区。仅绘制多面体时,深度测试似乎正在起作用。多面体用简单的线条绘制。

z 值行为表明多面体的深度缓冲区值可能为 1...?

关于如何同时显示背景图像和前景对象的任何线索?

4

1 回答 1

0

我的猜测是,当您绘制背景图像时,请禁用深度蒙版。这将确保在您放下背景时深度缓冲区保持不变,以便绘制多面体并且不会通过深度测试。

做一个简单的测试并缩小背景,然后放大多面体并使用您的原始算法进行渲染。您应该在没有背景的任何地方以及多面体实际通过深度测试的任何地方看到您的几何图形。

于 2010-10-12T03:50:33.133 回答