glBlend(GL_ZERO, GL_ONE_MINUS_SRC_COLOR);
我可以使像素2倍较暗由α(0.5)
乘以但是应该怎么做,如果我要减去彩色
例如red - 0.1
而不是
似乎着色器无法产生负面的颜色。 我不想渲染浮点纹理的渲染缓冲区。 太贵了。应用程序将运行缓慢。它不适用于所有大多数电话。
glBlend(GL_ZERO, GL_ONE_MINUS_SRC_COLOR);
我可以使像素2倍较暗由α(0.5)
乘以但是应该怎么做,如果我要减去彩色
例如red - 0.1
而不是
似乎着色器无法产生负面的颜色。 我不想渲染浮点纹理的渲染缓冲区。 太贵了。应用程序将运行缓慢。它不适用于所有大多数电话。
我不能专门说,在OpenGL中没有太多的东西,但仍然从我能提供的帮助中,我会做。
如果我理解正确,您需要一个在0到1之间的值(包括float-float)以从已经存在的颜色分量的值中减去。
为此,请访问此链接:http://www.andersriggelsen.dk/glblendfunc.php
它可以帮助你将生活在两个图像之间混合的检查。
检查混合功能:GL_FUNC_SUBTRACT
一个问题需要注意的是你不能使用GLUtils.texImage2D()在Android上加载阿尔法纹理。这是Google真正需要更好记录的常见问题。问题在于Bitmap类将所有图像转换为预倍数格式,但这不适用于OpenGL ES,除非图像完全不透明。最好的解决方案是使用本机代码。本文给出了更详细的关于这一点:
我不会减。但我不明白Java/Android问题与我的OpenGL ES混合问题有何关系。如果我可以添加纹理但是不能减去那么Alpha不是问题。是的。我使用本地代码并在iOS和Android上从PVR文件加载纹理。 – Max
听起来你正在绕过Bitmap类,所以这不是问题。 – ClayMontgomery
你一定是赢家:)我等待着,因为'GL_FUNC_SUBTRACT'似乎支持甚少。我不确定我是否可以在没有测试或大多数平台的情况下依靠它。太多报告“GL_FUNC_SUBTRACT”无法正常工作。 – Max