0

glBlend(GL_ZERO, GL_ONE_MINUS_SRC_COLOR); 

我可以通过乘以 alpha (0.5) 使像素变暗 2 倍

但是如果我想减去颜色该怎么办

例如red - 0.1,而不是red * 0.9

似乎着色器无法产生负色。我不想在浮点纹理的渲染缓冲区中渲染。它太贵了。应用程序将运行缓慢。它不适用于所有大多数手机。

4

2 回答 2

1

我无法具体说明,在 OpenGL 中没有掌握太多,但是,我仍然可以提供帮助,我会做的。

如果我理解正确,您需要一个介于 0 到 1 之间的值(含浮点数)来从已经存在的颜色分量的值中减去。

为此,请访问此链接:http ://www.andersriggelsen.dk/glblendfunc.php

它可以帮助您实时检查两个图像之间的混合。

检查混合功能:GL_FUNC_SUBTRACT

于 2013-08-23T11:02:21.087 回答
0

要注意的一个问题是您不能使用 GLUtils.texImage2D() 在 Android 上加载 alpha 纹理。这是谷歌真正应该更好地记录的常见问题。问题是 Bitmap 类将所有图像转换为预乘格式,但这不适用于 OpenGL ES,除非图像完全不透明。最好的解决方案是使用本机代码。本文提供了更多详细信息:

http://software.intel.com/en-us/articles/porting-opengl-games-to-android-on-intel-atom-processors-part-1

于 2013-08-23T14:57:35.363 回答