Unity3D shader Blending
混合(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;