我画的三角形每个顶点只有x和y坐标:
glVertexPointer(2, GL_FLOAT, 0, vertices);
有时,当我在另一个三角形上画一个三角形时,它们看起来是共面的,表面会抖动,因为它们在空间中共享完全相同的表面。
有没有一种方法可以在不使用3D坐标的情况下说"OpenGL,我希望你在它下面的任何东西上画这个三角形",或者我必须启用深度测试并使用3D坐标来控制Z索引?
如果你想在之前帧缓冲区中的任何东西的顶部渲染三角形,你可以完全禁用深度测试。但是,如果您需要一些不同于绘制顺序的自定义顺序,那么您将无法添加额外的深度信息(以第三个z坐标的形式)。无法对OpenGL说"渲染以下内容,但将z坐标集体设置为某个值"。您可以说"在现有内容的顶部渲染以下内容",也可以说"在其变换顶点产生的任何深度上渲染下列内容"。