启用或禁用 GPU 上的 alpha-to-coverage 模式。
Alpha-to-coverage 模式可以减少将多样本抗锯齿 (MSAA) 与使用 Alpha 测试的着色器(如植被着色器)一起使用时出现的过度锯齿。为此,它根据片元着色器结果输出中的 Alpha 值按比例修改多样本覆盖率遮罩。
此命令旨在与 MSAA 一起使用。如果在不使用 MSAA 时启用 alpha-to-coverage 模式,结果无法预测;不同的图形 API 和 GPU 对此有不同的处理方式。
功能名称 | 内置渲染管线 | 通用渲染管线 (URP) | 高清渲染管线 (HDRP) | 自定义 SRP |
---|---|---|---|---|
AlphaToMask | 是 | 是 | 是 | 是 |
此命令会更改渲染状态。在 Pass
代码块中使用它可为该通道设置渲染状态,或者在 SubShader
代码块中使用它可为该子着色器中的所有通道设置渲染状态。
签名 | 示例语法 | 功能 |
---|---|---|
AlphaToMask <state> |
AlphaToMask Off |
启用或禁用 alpha-to-coverage 模式。 |
参数 | 值 | 功能 |
---|---|---|
state | On |
启用 alpha-to-coverage 模式。 |
Off |
禁用 alpha-to-coverage 模式。 |
Shader "Examples/CommandExample"
{
SubShader
{
// 此处是定义子着色器的代码的其余部分。
Pass
{
// 为此通道启用减法混合
AlphaToMask On
// 此处是定义通道的代码的其余部分。
}
}
}
此示例代码演示在 SubShader 代码块中使用此命令的语法。
Shader "Examples/CommandExample"
{
SubShader
{
// 为此子着色器启用 alpha-to-coverage 模式
AlphaToMask On
// 此处是定义子着色器的代码的其余部分。
Pass
{
// 此处是定义通道的代码的其余部分。
}
}
}