2011-10-25 220 views
6

我發現了關於alpha混合的5349574673頁,但仍然無法獲得所需的結果。 我想使用opengl正確顯示gif/png文件(使用透明/半透明)。OpenGL alpha混合

這裏是我的初始化位:

glEnable(GL_TEXTURE_2D); 
glEnable(GL_BLEND); 
glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA); //I've seen this on most tutorials 
glDisable(GL_DEPTH_TEST); //it's a 2D game 
//...loading matrices and so on 

我相信圖像具有透明度,並正確加載。
glBlendFunc(GL_ONE,GL_ONE);但我無法判斷它是否在alpha通道上做了任何事情,因爲它會呈現爲黑色=>混合工作
glColor4f(1f,1f,1f,0.3f);工作正常,我可以畫透明的東西

P.S.我用這個例子http://lwjgl.org/wiki/index.php?title=Space_Invaders_Example_Game學習

編輯 我使用由與GIMP和其它質地裝載機編碼其他紋理,現在工作得很好。

+0

發佈圖像。 init代碼看起來不錯。 –

回答

5

您的混合設置是正確的。然而,爲了混合起作用,紋理必須包含一個alpha通道,當然應該有適當的值。然後,Alpha通道數據必須通過圖像加載過程保留。我們可以看到圖像加載和紋理生成代碼嗎?