Blend Off :不混合
Blend SrcFactor DstFactor :SrcFactor 是源系数,DstFactor是目标系数,源系数是由片段着色器计算出来的Fragment_out,目标系数是之前累计的原色值,存储在帧缓冲中。
Blend Zero One:只输出帧缓冲中的值,因为帧缓冲值为空,所以看不到物体;
Blend One Zero:只输出Fragment的结果;
Code Resulting Factor (SrcFactor or DstFactor)
One float4(1.0, 1.0, 1.0, 1.0)
Zero float4(0.0, 0.0, 0.0, 0.0)
SrcColor fragment_output
SrcAlpha fragment_output.aaaa
DstColor pixel_color
DstAlpha pixel_color.aaaa
OneMinusSrcColor float4(1.0, 1.0, 1.0, 1.0) - fragment_output
OneMinusSrcAlpha float4(1.0, 1.0, 1.0, 1.0) - fragment_output.aaaa
OneMinusDstColor float4(1.0, 1.0, 1.0, 1.0) - pixel_color
OneMinusDstAlpha float4(1.0, 1.0, 1.0, 1.0) - pixel_color.aaaa
混合公式:
(片元Shader计算出的点颜色值*源系数)+ (点累积颜色 * 目标系数)
点累积颜色指的是在OpenGL中执行混合操作之前,目标像素位置已经存在的颜色值。换句话说,它是当前帧缓冲区中对应像素点的颜色值。
透明度混合公式:(Blend SrcAlpha OneMinusSrcAlpha)
当前透明度 x 当前颜色 +(1 - 当前透明度)x 缓存颜色
叠加混合公式:(Blend SrcAlpha One)