我正在Android上的OpenGL ES 2.0中呈現obj文件並啓用了Back-Culling。只有紋理圖像的一部分(脖子上的項鍊)實際上具有alpha。使用具有alpha的紋理圖像使網格'透視'
當渲染只有網格,它看起來罰款:
然而,使質感,我能夠通過網看到到另一邊。您可以在下面看到身體後面的右手也變得可見。任何想法可能會出錯?
編輯:
我曾嘗試以下:
- 啓用/禁用背面剔除
- 檢查頂點
- 檢查的順序,如果法線內的一些點
但似乎沒有任何工作。任何其他方向將不勝感激。
編輯2:
我打開了紋理圖像,並通過將其保存爲在圖像編輯程序沒有alpha層用黑色填充所有的透明區域。這是現在的樣子:
透明度的問題消失了,後來我將無法看到正確的項鍊。
編輯3:可以Alpha-blending and the Z-buffer是一個問題,如鏈接中所述?它聲稱'Z緩衝區不適用於透明多邊形。'
這似乎是一個嚴重的問題。如果您正在使用模擬器,可能是原因,請在設備上嘗試。由於您突然擁有透明度,所以深度測試將會有點不同,因爲透明對象背後的對象仍然必須繪製,以便您可以部分看到它。有可能你的混合函數在某種程度上是奇怪的,也會導致這種情況。 –
@MaticOblak我在設備上。 –