我想实现下面的混合:平滑的色彩混合
这是我目前有:
我已经启用混合和我指定的混合功能:
glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
我可以看到纸应用程序中绘制的图像由一个小圆圈组成,该小圆圈在前后具有相同的纹理并对颜色和阿尔法具有一些混合效果。
我该如何达到预期效果?
UPDATE:
我想的情况是,两个纹理的相交区域越来越alpha通道要被修改(无论添加剂或其他自定义功能),而纹理不被绘制在相交区域。该区域的其余部分绘制了其余的纹理。像这样:
我并不完全确定如何实现这一结果,虽然。
嗯 - 我不认为我完全理解解决方案:(假设我要创建。 iOS应用,以支持OpenGL ES 1.1,我不得不坚持模板缓冲,因为我没有获得GLSL。 其次,我想要做的是避免显示为重叠的边缘,但相反,如果你画的话,它会表现得像一个平滑的中风,如何绘制全屏四边形的纹理来解决这个问题? – kajham 2012-07-18 00:17:27
它似乎是两个纹理的交集具有已添加到相交区域中的像素数据的加法或平均值,但在相交区域上没有绘制纹理。相反,剩余的纹理绘制在不相交的区域。 – kajham 2012-07-18 01:12:20
@kajham:模板缓冲区的目的是在希望纹理化的整个区域上创建一个遮罩。当您使用模板缓冲区时,每次绘制一个形状时,其覆盖的每个像素都将在模板缓冲区中进行标记。然后,一旦你绘制了所有的圆圈,模板缓冲区将包含所有圆圈交集的轮廓。然后,您可以使用此轮廓来遮罩包含纹理的全屏四边形。绘制完这个四边形后,只会绘制模板覆盖的区域。 – Tim 2012-07-18 04:13:20