2015-04-22 336 views
-1

我有與alpha通道紋理問題。我正在渲染一片帶葉子的棕櫚樹: enter image description hereOpenGL透明紋理問題

但是正如你所看到的,天空在圖片左側的葉子上。

在我的代碼中,天空呈現,然後我渲染樹木。 這裏是我的代碼,這使得一個棕櫚樹:

 RenderFrame(0);//trunk 
     //glColor3f(0.0, 0.6, 0.0); 
     glEnable(GL_BLEND); 
     glDisable(GL_CULL_FACE); 
     glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); 
     glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); 
     leaves.RenderFrame(0); 
     glEnable(GL_CULL_FACE); 
     glDisable(GL_BLEND); 
+0

您是否啓用了深度測試?如果是的話,葉子可能只是在天空後面,並通過深度測試消除。 –

+0

它更糟。我看到其他物體後面的葉子。我認爲它必須進行排序(從最遠到最近的相機)... – Barcio77

回答

0

與其他人一樣說,似乎呈現的順序是錯誤的。我以前遇到過這個問題,這不是一個簡單的解決方案,尤其是因爲您使用的是不推薦的即時模式。看看這個問題中的這些解決方案:OpenGL ES2 Alpha test problems