OpenGL ES 2.0颜色减法

时间:2013-08-23 10:49:04

标签: android ios opengl-es-2.0

glBlend(GL_ZERO, GL_ONE_MINUS_SRC_COLOR); 

我可以通过乘以alpha(0.5)

使像素变暗2倍

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

e.g。 red - 0.1代替red * 0.9

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

2 个答案:

答案 0 :(得分:1)

我无法具体说明,在OpenGL中没有多少关注,但仍然可以帮助我,我会做的。

如果我理解正确,你需要一个0到1之间的值-love从现有颜色分量的值中减去。

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

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

检查混合功能:GL_FUNC_SUBTRACT

答案 1 :(得分:0)

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

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