0

我正在为 Android 使用 OpenGL ES 1.0。我有一个由 2 个三角形(四边形)组成的形状,就像一张扑克牌。这张扑克牌使用的纹理有光滑的边角(透明)

当我绘制形状时...以这种方式启用混合功能:

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

如果我只抽一张牌,一切都很好!!!

但是,当我画很多卡片时......并添加一些旋转,我可以看到形状的角落:

在此处输入图像描述

我怎样才能在所有帧上都有透明效果?有没有办法替换所有帧上的混合?

4

1 回答 1

2

alpha 测试可能glEnable(GL_ALPHA_TEST); glAlphaFunc(GL_GREATER, 0.1f);比混合更好,因为在使用混合时,您必须对它们进行排序以从前到后绘制它们。

看起来你是先画最上面的牌,然后再画下面的牌,而在混合时,你必须先画底牌才能正确混合。

于 2012-08-07T20:27:17.600 回答