带
glBlend(GL_ZERO, GL_ONE_MINUS_SRC_COLOR);
我可以通过乘以alpha(0.5)
使像素变暗2倍但如果我想减去颜色,我该怎么办
e.g。 red - 0.1
代替red * 0.9
似乎着色器无法产生负色。 我不希望渲染浮点纹理的渲染缓冲区。 它太贵了。应用程序将运行缓慢。它不适用于所有大多数手机。
答案 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,除非图像完全不透明。最好的解决方案是使用本机代码。本文提供了更多详细信息: