ShaderLab command: ColorMask
概述
ColorMask命令可以设置颜色的写入通道,可以选择哪些通道写入,也就是会阻止GPU将一些通道写入到RenderTarget当中。
默认情况下,GPU会写入所有的通道RGBA,但有时候实现一些效果的时候,我们不需要4个通道,比如我们可以在渲染阴影贴图时关闭所有的颜色通道,因为只需要深度图。还有一种常用的场景就是完全禁用颜色写入,以便我们可以在一个缓冲区中填充数据而无需写入其他缓冲区,例如在不写入渲染目标的情况下填充模板缓冲区。
该命令在各个渲染管线的支持
全都支持
管线 | 内置管线 | URP | HDRP | SRP |
---|---|---|---|---|
是否支持 | 支持 | 支持 | 支持 | 支持 |
使用方法
这个命令会改变渲染状态,写在Pass块中使用是设置该Pass的渲染状态,或者写在SubShader块中会设置这个SubShader所有的Pass的渲染状态
写法 | 示例 | 说明 |
---|---|---|
ColorMask | ColorMask RGB | 将指定的通道写入到RenderTarget |
ColorMask | ColorMask RGB 2 | 将指定的通道写入到指定的RenderTarget |