1. 颜色混合
颜色混合就是两种或者多种透明度不为1的颜色混合在一起会产生一种新的颜色,这个过程就是颜色混合。
在渲染过程中,颜色都是存放到颜色缓冲区中,两个重叠的图层,在同一个点存储到颜色缓冲区中的颜色只是最上层图层的颜色值。但是如果重叠的图层上面的图层是半透明的,这时就需要将这两个图层的颜色进行混合。
什么时候使用颜色混合
大前提:不能开启深度测试,如果开启了深度测试,那么颜色混合就会以深度为基础进行渲染。也就是说开启深度测试然后在开启颜色混合会发生问题,例如:有两个正方形A、B,A的深度为2、颜色不透明 1、最后绘制;B的深度是1、颜色透明 0.5、先绘制,结果是没有进行颜色混合。 如果AB的深度值置换一下就会混合了;如果AB的绘制顺序置换一下也会混合。(具体怎么造成的暂不清楚)
固定着色器
两个图层重叠,且最上面图层的透明度不为1,就会进行颜色混合。
可编程着色器
在片元着色器中,处理某个图层上颜色,比如:在A图层上涂上一层薄薄的橘色,就会进行颜色混合。
如何开启、关闭颜色混合
开启颜色混合
glEnable