语法如下:
ColorMask RGB | A | 0 | 其他R,G,B,A的组合
ColorMask R,意思是输出颜色中只有R通道会被写入
ColorMask 0,意思是不会输出任何颜色
默认值为RGBA,即四个通道都写入
测试:
1.ColorMask R
1 Shader "Custom/ColorMask" 2 { 3 Properties 4 { 5 } 6 SubShader 7 { 8 Tags { "RenderType"="Opaque" } 9 10 Pass 11 { 12 ColorMask R 13 14 CGPROGRAM 15 #pragma vertex vert 16 #pragma fragment frag 17 18 #include "UnityCG.cginc" 19 20 struct appdata 21 { 22 float4 vertex : POSITION; 23 }; 24 25 struct v2f 26 { 27 float4 vertex : SV_POSITION; 28 }; 29 30 v2f vert (appdata v) 31 { 32 v2f o; 33 o.vertex = mul(UNITY_MATRIX_MVP, v.vertex); 34 return o; 35 } 36 37 fixed4 frag (v2f i) : SV_Target 38 { 39 return fixed4(1, 1, 1, 1); 40 } 41 ENDCG 42 } 43 } 44 }
效果如下,可以看出输出颜色并不是红色。因此推出,“只有R通道会被写入”并不是说写入的颜色就是(R,0,0),那么G,B这两个通道的值是怎么取的呢?经试验取的是摄像机的Background值。
2.ColorMask 0
如下两图,第一个是ColorMask RBGA,第二个是ColorMask 0。ColorMask 0虽然不写入颜色,但是默认是开启深度写入的,因此重叠部分的像素还是会被舍弃掉的
分类:
UnityShader基础
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2018-03-17 [Unity工具]CSV工具类