混合因子
混合因子的公式是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}