2010-11-19 56 views
1

基本上我有在OpenGL ES 1.1的全功能OGL程序(2D遊戲),一切工作正常,除了一個問題:glcolor問題使用glColor到紋理設置爲半透明度

我想設置一些的我的紋理半透明,我想這樣做,如下所示;

gl.glColor4f(1f, 1f, 1f, .5f); 
obj.draw(gl); 
... 

gl.glColor4f(1f, 1f, 1f, 1f); 

我爲我的vertice,紋理和索引使用VBO。 (如果是相關的)

的問題是,沒有被設置爲50%的透明度...

我主要是因爲它傳播出去幾類不認爲有關發佈我的代碼(幾個GL選項的變化(混合,剪刀等)

我想要的是人們告訴我什麼狀態的OGL可以防止像我想要的glcolor形式工作,我應該檢查什麼功能,我應該檢查什麼狀態

Jason

回答

1

我終於得到了足夠的時間一步步走trhough我所有的痕跡,發現問題

gl.glTexEnvf(GL10.GL_TEXTURE_ENV,GL10.GL_TEXTURE_ENV_MODE。 ..);

...設置而產生的一些紋理GL_REPLACE和從未設置爲GL_COMBINE

0

您是否啓用了GL_BLEND? 結賬glBlendFunc。我通常最終會使用glBlendFunc(SRC_ALPHA,ONE_MINUS_SRC_ALPHA)

+0

用正確的glBlendFunc啓用沒錯GL_BLEND。我的大多數紋理在0區域都有alpha,所以混合效果已經很好(否則我會在紋理周圍留下漂亮的黑色或白色方塊) – 2010-11-22 03:59:57