US2S2——ShaderLab语法
US2S2——ShaderLab语法
ShaderLab
Unity Shader是对Shader的一种封装,它是对底层图形渲染技术的封装,
它提供了一种叫做ShaderLab的语言,来让我们更加轻松的编写和管理着色器
ShaderLab其实就是Unity自定义的一种语法规则,是用于在Unity中编写和管理着色器的专门的语言
它提供了一种结构化的方式来描述Unity着色器的各个部分,从而让我们可以更轻松的创建和管理着色器
总而言之:无论我们编写哪种类型的Shader,或是选择哪种语言去编写Shader
在Unity中总会通过ShaderLab语言对其进行包装和组织,它是Unity自定义的一种语法规则
本系列学习内容
-
材质与Shader
-
ShaderLab的基本结构
-
Shader的名字(决定材质面板的选择路径)
-
Shader的属性(定义可在材质面板设置的参数,并可被后续的语句内使用)
-
Shader的子着色器(渲染的具体实现,会选择第一个可被执行的
SubShader
)- Tags-渲染标签(渲染顺序,着色器分类,是否禁用批处理,是否投射阴影,是否忽略投影机,是否使用图集等等)
- States-渲染状态(重点渲染状态:深度缓冲,深度测试,混合方式,次要:LOD,颜色蒙版)
- Pass-渲染通道(具体实现着色器代码的地方)
-
Shader的备用着色器(当所有的
SubShader
不可用时,使用什么着色器去替换)
-
-
Shader的编写形式
- 表面着色器(对顶点/片元着色器的封装,代码量少,性能消耗较大)
- 顶点/片元着色器(更灵活,可控性更强,掌控细节更多,学习重点)
- 固定函数着色器(旧设备使用,已经几乎弃用)
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 文KRIFE齐的博客!