OpenGL 在给定深度绘制矩形

OpenGL Draw Rectangle At Given Depth

目前,我启用了 GL_DEPTH_TEST 并将其用于纹理。但是,我想绘制一个具有特定 depth/z 值的无纹理矩形。

glDisable(GL_TEXTURE_2D);
glColor3f(colour.x, colour.y, colour.z);
glRects((short) rect.x, (short) rect.y, (short) rect.z, (short) rect.w);
glEnable(GL_TEXTURE_2D);

上面的代码绘制了正方形。如何为正方形设置 Z 值或深度值,以便进行深度测试?

glRect 函数族总是在 0 处隐含地用 z 绘制。所以你有两个选择:

  1. 设置相同的变换,将 z=0 平面放到您喜欢的位置。
  2. 根本不要使用 glRect,只需在您喜欢的 z 坐标处使用 4 个顶点绘制一个矩形。

您应该知道,您粘贴的代码中的每一行 都依赖于已弃用 OpenGL 功能和glRect 本身即使对于已弃用的代码也是一个相当晦涩的函数。