2017-02-16 15 views
-1

我在OpenGL中以半透明顏色渲染時會出現帶有多邊形的多邊形,它會顯示某些沿棋盤格三角形(GLUtesselator)的接縫處的僞像。這有點奇怪,因爲如果以不透明的顏色繪製相同的多邊形,則不會有這樣的僞影。視爲點線OpenGL中的半透明多邊形中看到的僞像(接縫)

工件從內圓延伸到多邊形的外邊界:

img

在多邊形的內部看到更多工件:

img

似乎狀出血從兩個相鄰三角形邊緣之間的顏色混合。但我不知道如何緩解這個問題。

有沒有人見過這個問題?或者有人能指出問題可能是什麼,併爲我提供了一個可能的解決方案?

+0

我看到它是正確的,你用10-20多邊形來組成這個?你使用紋理還是純色?爲什麼矩形有邊界? –

+4

請顯示相關的代碼部分。 – BDL

+0

你使用什麼深度測試? – Spektre

回答

1

OpenGL保證繪製兩個共享一個邊的三角形只會產生一次覆蓋的片段,因此您可以渲染無僞像的半透明多邊形。

但是,只有在兩個三角形之間的邊緣的兩個頂點都是相同的時,此保證纔有效。此外,如果您使用GL_SMOOTH_POLYGON反鋸齒您的多邊形,它將不會成立。

在看不到相關代碼的情況下,很難說出這裏的情況,但我肯定會檢查共享邊的頂點的座標,看它們是否相同。

+0

你說得對。我能夠檢查共享邊的頂點座標,看它們是否相同。雖然他們是一樣的,但他們不是我認爲他們是。他們不正確的圓形,因此失去了精度。我很欣賞我從你那裏得到的方向;否則,我仍然會吠叫錯誤的樹木。 – SharpT