2015-08-08 72 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