混合(Blending)是计算机呈现渲染结果的最后阶段,每一个像素将被绘制到屏幕上。
混合的基本公式:Blend SrcFactor DstFactor 将前面各种计算产生的颜色(fragment_output
)*SrcFactor+当前屏幕的颜色(pixel_color
)*DstFactor 等价于float4 result = SrcFactor * fragment_output + DstFactor * pixel_color;
混合的一个基本参数介绍:
Code | Resulting Factor (SrcFactor or DstFactor ) |
---|---|
One | float4(1.0) |
Zero | float4(0.0) |
SrcColor | fragment_output |
SrcAlpha | float4(fragment_output.a) |
DstColor | pixel_color |
DstAlpha | float4(pixel_color.a) |
OneMinusSrcColor | float4(1.0) - fragment_output |
OneMinusSrcAlpha | float4(1.0 - fragment_output.a) |
OneMinusDstColor | float4(1.0) - pixel_color |
OneMinusDstAlpha |
|
所以 对于任何混合命令 套用以上公式 即可。
例如:Blend SrcAlpha OneMinusSrcAlpha 等价于 float4 result =
float4(fragment_output.a)
* fragment_output + float4(1.0 - fragment_output.a)
* pixel_color;