2013-11-25 69 views
0

我畫每個頂點只有X和Y座標的三角形:如何在OpenGL ES 1.1中繪製2D三角形時定義順序?

glVertexPointer(2, GL_FLOAT, 0, vertices); 

有時,當我畫一個三角形在另一個三角形,他們似乎是共面的和麪抽搐,因爲它們在空間上有着完全相同的表面。如果不使用三維座標,或者我必須啓用深度測試並使用三維座標來控制Z軸的座標,有沒有一種方法可以說「OpenGL,我希望在不使用3D座標的前提下繪製這個三角形」指數?

回答

3

如果您想渲染三角形之前的任何位於framebuffer之前,您可以完全禁用深度測試。但是,如果您需要一些與繪製順序不同的自定義排序,那麼您將無法繞過添加其他深度信息(以第3個z座標的形式)。沒有辦法說OpenGL 「渲染下面的東西,但Z座標統一設置爲一些值」。你可以說「在任何有頂點的頂部渲染下面的東西」「渲染下面的東西,從它的變換的頂點的任何深度結果」

+0

問題是我在他人的「頂部」繪製的三角形似乎與它們相交,因爲它們是共面的,並且它們在共面時移動時會產生鋸齒/抖動效果。你怎麼說「在任何地方提供下面的東西」?只需調用glVertexPointer(2,GL_FLOAT,0,vertices);爲了覆蓋其他三角形,每個三角形都會一次又一次? –

+0

@ProudMember *「似乎與它們相交,因爲它們是共面的」* - 只有深度測試啓用時纔會發生這種深度戰鬥。如果您只是想在之前的任何位置繪製三角形,爲什麼要使用深度測試?要麼你想要一個特定的順序,那麼你必須使用深度測試,並給你的三角形合理地不同的深度(所以他們不應該共面)。或者您想按照畫圖順序對它們進行排序,那麼您根本就不會使用任何深度測試。 –

+0

然後它是有道理的。當我遇到這個問題時,我確信深度測試被禁用了。謝謝你的提示。 –