Blend
命令决定 GPU 如何将片段着色器的输出与渲染目标结合起来。
此命令的功能取决于混合操作,你可以使用 BlendOp 命令设置该操作。请注意,虽然混合本身在所有图形 API 和硬件上都得到支持,但某些混合操作的支持更为有限。
启用混合会禁用 GPU 上的部分优化(主要是隐藏表面移除/早期 Z),这可能导致 GPU 帧时间增加。
以下是用于最常见的混合类型语法的
Blend SrcAlpha OneMinusSrcAlpha // Traditional transparency
Blend One OneMinusSrcAlpha // Premultiplied transparency
Blend One One // Additive
Blend OneMinusDstColor One // Soft additive
Blend DstColor Zero // Multiplicative
Blend DstColor SrcColor // 2x multiplicative
Shader "Examples/CommandExample"
{
SubShader
{
// The rest of the code that defines the SubShader goes here.
Pass
{
// Enable regular alpha blending for this Pass
Blend SrcAlpha OneMinusSrcAlpha
// The rest of the code that defines the Pass goes here.
}
}
}
此示例代码展示了在 SubShader 块中使用此命令的语法。
Shader "Examples/CommandExample"
{
SubShader
{
// Enable regular alpha blending for this SubShader
Blend SrcAlpha OneMinusSrcAlpha
// The rest of the code that defines the SubShader goes here.
Pass
{
// The rest of the code that defines the Pass goes here.
}
}
}