2010-08-08 82 views
0

我將與幾個共面多邊形進行網格化,所有這些多邊形都躺在某個平面上,我無法消除。用於在OpenGL中繪製共面多邊形的技巧

這些多邊形具有特定的繪製順序。一些多邊形在其他多邊形之後。如果我關閉深度測試,我會得到我想要的效果,但我希望能夠將此網格放置在3D場景中。

我不信任glPolygonOffset因爲我可能會有幾個這些重疊的多邊形,我很擔心偏移的累積效應。

+0

什麼問題? – Calvin1602 2010-08-08 17:59:52

+0

「除了glPolygonOffset和正確的裁剪外,還有什麼方法可以在OpenGL中繪製共面多邊形,因爲我希望以特定順序繪製多邊形?」 – AJM 2010-08-21 01:08:08

回答

4

如果我關閉深度測試,我會得到我想要的效果,但我希望能夠將此網格放置在3D場景中。

只需禁用寫入z緩衝區而不禁用深度測試。

glDepthMask(GL_FALSE);

確保渲染不需要glDepthMask(GL_FALSE)所有多邊形渲染任何多邊形與glDepthMask(GL_FALSE)之前;否則對象將被錯誤地定位。

如果你不能這樣做,那麼你應該改變你的幾何圖形或使用紋理。

glDepthMask documentation

+0

深度面具技巧應該做的,儘管我開始意識到我將不得不弄清楚如何正確剪輯我的多邊形以獲得真實的魯棒性。 我之所以要解決問題是因爲我的一些多邊形實際上代表了貝塞爾曲線。 – AJM 2010-08-21 01:09:47