2015-08-08 99 views
0

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

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值或深度值,以便深度测试能够与其一起使用?

回答

0

glRect家庭的功能总是z得出隐含为0。所以,你有两个选择:

  1. 设置其放z=0平面到你喜欢它同样的转变。
  2. 都不要使用glRect,只是用绘制4个顶点在z自己的喜好坐标的矩形。

你应该知道,每线在你粘贴是依靠代码弃用 OpenGL功能和glRect本身甚至过时的代码相当模糊的功能。

+0

如何去绘制矩形的_best_方式? (我目前正在使用VBOs进行纹理处理。) – user5204762

+0

VBOs不适用于纹理。它们用于顶点数据,因为VBO中的_V_明确地指出。我真的不知道你的意思。但是,您应该使用VBO来处理GL中的任何几何数据,因为这是唯一指定顶点属性的非弃用路径。 – derhass

+0

是的,一个VBO用于目标位置,另一个用于精灵表中的纹理位置。感谢你的回答! – user5204762