您的位置:首页 > 运维架构

opengl基础学习<二> ----混合因子

2014-04-16 16:13 274 查看
混合因子

混合因子的公式是Cf = (Cs*S) + (Cd * D)

Cf是最终产生的颜色,Cs是目标颜色,就是你正在绘制的颜色,Cd是目标颜色,就是你要混合(叠加)的那个颜色

S和D分别为混合因子

用一个例子来表示就是

GLfloat vMycolor[] = { 0.5f, 0.5f, 0.0f, 1.0f };//源颜色

GLfloat vRed[] = { 1.0f, 0.0f, 0.0f, 1.0f };
//目标颜色

glBlendFunc(GL_ONE, GL_SRC_COLOR);

GL_ONE的混合因子是(1, 1, 1, 1)

GL_SRC_COLOR的混合因子是(Rs,Gs,Bs, As)

Rs,Gs,Bs,As表示的是源颜色的值,在这里就是0.5, 0.5 , 0, 1(注:是未乘于混合因子之前的色值)

Cs * S 就是 {0.5f * 1, 0.5f * 1, 0.0f * 1, 1.0f *1} = {0.5f, 0.5f, 0.0f, 1.0f}

Cd * D 就是{1.0 * 0.5f, 0.0f * 0.5f, 0.0f * 0.0f, 1.0f * 1.0f} = {0.5f, 0.0f, 0.0f, 1.0f}

最终的Cf = {0.5f + 0.5f, 0.5f + 0.0f, 0.0f + 0.0f , 1.0f + 1.0f}

因为色值的范围是0 - 1,所以最后的色值 = {1.0f, 0.5f, 0.0f, 1.0f}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: