OpenGL 混合

489 阅读1分钟

混合

OpenGL渲染时会把颜⾊值存在颜⾊缓存区中,每个片段的深度值也是放在深度缓冲区。当深度缓冲区被关闭时,新的颜色将简单的覆盖原来颜色缓存区存在的颜色值,当深度缓冲区再次打开时,新 的颜⾊片段只是当它们比原来的值更接近邻近的裁剪平面才会替换原来的颜色片段。

glEnable(GL_BlEND);

组合颜色

⽬标颜色:已经存储在颜色缓存区的颜色值 源颜色:作为当前渲染命令结果进入颜色缓存区的颜色值

当混合功能被启动时,源颜色和目标颜色的组合方式是混合方程式控制的。在默认情况下,混合方程式如下所示:

Cf = (Cs * S) + (Cd * D);

Cf :最终计算参数的颜色 
Cs : 源颜色
Cd :目标颜色 
S:源合因子 
D:目标混合因子

混合因子

设置混合因子,需要用到glBlendFun函数:

glBlendFunc(GLenum S,GLenum D);
S:源混合因⼦
D:目标混合因⼦

表中R、G、B、A 分别代表 红、绿、蓝、alpha。 表中下标S、D,分别代表源、目标 表中C 代表常量颜色(默认⿊⾊)

摘自逻辑教育