OpenGL进阶系列21 - OpenGL SuperBible - blendmatrix 例子学习
一:概述
颜色输出阶段是 OpenGL 渲染管线中最后一个阶段。它决定了片段在离开片段着色器之后,最终显示在用户屏幕上的颜色值。颜色输出阶段最重要的一个操作就是混合。本例子重点介绍下OpenGL中的混合操作。
对于每个通过片段测试(per-fragment tests)的片段,会执行混合操作。混合允许你将传入的源颜色与颜色缓冲区中已有的颜色进行组合;
OpenGL的混合功能非常强大且高度可配置,它的工作原理是:先将原颜色(即你着色器生成的颜色值)乘以一个源因子,再将帧缓冲区中已有的颜色乘以一个目标因子,然后使用一种你可以选择的操作(称为混合方程)将这两个乘积的结果组合在一起。
二: OpenGL混合相关API
1. 开启混合
glEnable(GL_BLEND);
2. 关闭混合
glDisable(GL_BLEND);
3. 混合因子
glBlendFunc() 用来设置源混合因子和目标混合因子。
glBendFuncSeparate() 用来为每个通道(R、G、B、Alpha)分别设置源因子和目标因子。