2012-08-07 106 views
0

我正在使用OpenGL ES 1.0 for Android。 我有一個由2個三角形(四邊形)組成的形狀,就像一張紙牌。 用於該遊戲卡質地光滑的角落(透明)OpenGL ES 1.0上的混合函數(Android)

當我繪製形狀......能以這種方式混合功能:

gl.glEnable(GL10.GL_BLEND); 
    gl.glBlendFunc(GL10.GL_ONE, GL10.GL_ONE_MINUS_SRC_ALPHA); 

如果我畫只有一張卡都做工精細! !

但是,當我畫很多卡片...並添加一些旋轉,我可以看到形狀的角落:

enter image description here

上的所有幀怎樣纔可以有透明效果?有一種方法可以替換所有幀上的混合?

回答

2

您可能會更好地通過alpha測試glEnable(GL_ALPHA_TEST); glAlphaFunc(GL_GREATER, 0.1f);服務比混合,因爲使用混合時,你必須排序你從前到後繪製它們。

看起來你要先畫出頂牌,然後在底下畫牌,而在混合時,你必須先畫底牌才能正確混合。

+0

是對的!但爲了完成我使用gl.glAlphaFunc的源代碼(GL10.GL_GREATER,0.1f); – James 2012-08-07 20:37:02