繁体   English   中英

OpenGL ES 1.0上的混合功能(Android)

[英]Blending Function on OpenGL ES 1.0 (Android)

我正在使用OpenGL ES 1.0 for Android。 我有一个由2个三角形(四边形)组成的形状,就像一张游戏卡。 用于此游戏卡的纹理具有光滑的角(透明)

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

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

如果我只画一张卡就可以了!

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

在此输入图像描述

如何在所有画面上都有透明效果? 有一种方法可以替换所有框架上的混合吗?

你可能会通过alpha测试glEnable(GL_ALPHA_TEST); glAlphaFunc(GL_GREATER, 0.1f);得到更好的服务glEnable(GL_ALPHA_TEST); glAlphaFunc(GL_GREATER, 0.1f); glEnable(GL_ALPHA_TEST); glAlphaFunc(GL_GREATER, 0.1f); 而不是通过混合,因为在使用混合时,您必须对您进行排序,从前到后绘制它们。

看起来你首先要绘制顶部卡片,然后在它下面绘制卡片,而在混合时你必须首先绘制底部卡片才能正确混合。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM