Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何编程条件opengl混合_Opengl_Opengl Es_Blending - Fatal编程技术网

如何编程条件opengl混合

如何编程条件opengl混合,opengl,opengl-es,blending,Opengl,Opengl Es,Blending,我试图找出是否有一种方法可以在渲染过程中控制混合过程 例如: -有一个背景纹理,精灵1和精灵2(全部部分覆盖)。 -sprite2是白色的,背景和sprite1没有白色像素 -我希望精灵与背景混合,但不要彼此混合 我可以通过某种方式编程opengl对每个像素执行以下操作吗? -检查是否有3种颜色正在混合,其中一种是白色,然后仅混合其他2种颜色,忽略白色 -如果两种颜色混合,其中一种是白色,则定期混合 这是可以用着色器完成的吗? 将使用多重纹理 对于你的第二个问题,你可以使用 如果还有其他颜色检查

我试图找出是否有一种方法可以在渲染过程中控制混合过程

例如: -有一个背景纹理,精灵1和精灵2(全部部分覆盖)。 -sprite2是白色的,背景和sprite1没有白色像素 -我希望精灵与背景混合,但不要彼此混合

我可以通过某种方式编程opengl对每个像素执行以下操作吗? -检查是否有3种颜色正在混合,其中一种是白色,然后仅混合其他2种颜色,忽略白色 -如果两种颜色混合,其中一种是白色,则定期混合

这是可以用着色器完成的吗?

将使用多重纹理

对于你的第二个问题,你可以使用

如果还有其他颜色检查


这是选择性混合。可以使用自定义帧缓冲区在着色器中执行此操作。对于OpenGL初学者来说,具体如何解释是相当复杂的。首先从着色器和帧缓冲区开始。您可以在Web中找到glsl混合方程A谢谢您的指导,Michael。我现在正在研究帧缓冲区和着色器,似乎离我的目标越来越近了。。。