默认情况下,GPU 会写入所有通道 (RGBA)。对于某些效果,您可能希望将某些通道保持不变;例如,您可以禁用颜色渲染以渲染无色阴影。另一个常见用例是完全禁用颜色写入,以便您可以使用数据填充一个缓冲区而无需写入其他缓冲区;例如,您可能希望填充模板缓冲区一个存储每个像素 8 位值的内存存储。在 Unity 中,您可以使用模板缓冲区来标记像素,然后仅渲染通过模板操作的像素。更多信息
参见 术语表而无需写入渲染目标。
Shader "Examples/CommandExample"
{
SubShader
{
// The rest of the code that defines the SubShader goes here.
Pass
{
// Enable writing only to the RGB channels for this Pass, which disables writing to the alpha channel
ColorMask RGB
// The rest of the code that defines the Pass goes here.
}
}
}
此示例代码演示了在 SubShader 块中使用此命令的语法。
Shader "Examples/CommandExample"
{
SubShader
{
// Enable writing only to the RGB channels for this SubShader, which disables writing to the alpha channel
ColorMask RGB
// The rest of the code that defines the SubShader goes here.
Pass
{
// The rest of the code that defines the Pass goes here.
}
}
}