Android OpenGL ES 2.0颜色减法

Android OpenGL ES 2.0颜色减法,android,ios,opengl-es-2.0,Android,Ios,Opengl Es 2.0,与 我可以通过乘以alpha(0.5)使像素变暗2倍 但是如果我想减去颜色,我该怎么办呢 e、 g.红色-0.1而不是红色*0.9 似乎着色器无法生成负颜色。 我不希望在浮点纹理的渲染缓冲区中渲染。 太贵了。应用程序将运行缓慢。它不会在所有的手机上都起作用。我不能明确地说出来,在OpenGL中没有太多的内容,但从我能提供的帮助来看,我会做的 如果我理解正确,您需要一个0到1(包括浮点)范围内的值来从已经存在的颜色组件的值中减去 为此,请访问以下链接: 它可以帮助您实时检查两个图像之间的混合 检查

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

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

e、 g.
红色-0.1
而不是
红色*0.9

似乎着色器无法生成负颜色。 我不希望在浮点纹理的渲染缓冲区中渲染。
太贵了。应用程序将运行缓慢。它不会在所有的手机上都起作用。

我不能明确地说出来,在OpenGL中没有太多的内容,但从我能提供的帮助来看,我会做的

如果我理解正确,您需要一个0到1(包括浮点)范围内的值来从已经存在的颜色组件的值中减去

为此,请访问以下链接:

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


检查混合函数:GL_FUNC_SUBTRACT

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


你肯定是赢家:)我等待是因为
GL\u FUNC\u SUBTRACT
似乎没有得到很好的支持。我不确定我是否可以在没有测试或大多数平台的情况下依赖它。太多的报告
GL\u FUNC\u SUBTRACT
不起作用。我不会减号。但我不明白Java/Android问题与我的OpenGL ES混合问题有何关联。若我可以添加纹理,但不能减去,那个么Alpha并不是问题。是的。我使用本机代码,自己从iOS和Android上的PVR文件加载纹理。听起来你好像绕过了位图类,所以这不是问题。
glBlend(GL_ZERO, GL_ONE_MINUS_SRC_COLOR);