[英]Transparent texture in OpenGL ES for Android
我正試圖在opengl中設置四邊形紋理的透明度,使用混合函數進行游戲並沒有幫助他們在谷歌上做任何事情。 有什么建議么?
我有一個類似的問題,一個代碼正常工作而另一個代碼沒有。 經過大量的日志記錄和調試,我發現差異是一行代碼。
在具有工作alpha的代碼中,我在設置渲染器之前調用了以下內容。
setEGLConfigChooser(false)
如果這沒有幫助,這里有幾個其他指針......
在加載紋理之前 ,請確保已啟用混合。
例如:
// Enable blending using premultiplied alpha.
gl.glEnable(GL10.GL_BLEND);
gl.glBlendFunc(GL10.GL_ONE, GL10.GL_ONE_MINUS_SRC_ALPHA);
...並確保您用於生成紋理的位圖實際上具有alpha分量。
我能夠使用不同的方法修復列出的問題。 我先設定
gl.glTexEnvf(GL10.GL_TEXTURE_ENV, GL10.GL_TEXTURE_ENV_MODE, /*GL10.GL_REPLACE*/ GL10.GL_MODULATE);
然后能夠使用設置紋理的alpha
gl.glColor4f
在Ron的回答之后,我更接近於解決我沒有顯示紋理透明度的問題。 我的下一個問題是,我在GLSurfaceView后面有一個非GL SurfaceView並使用:
setEGLConfigChooser(false);
我看到我的紋理還可以,但我的整個SurfaceView都被塗黑了。 以下修復了我的問題:
setEGLConfigChooser(8, 8, 8, 8, 0, 0);
將false設置為唯一參數是禁用深度測試的一種方法,但您也可以通過將第2個參數設置為0來有效地執行相同操作。 前者將創建一個默認的RGB_565配置,而我需要RGBA_8888配置,因此更改。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.