在Unity中,所有的Unity Shader都是使用ShaderLab来编写的,它可以帮助我们轻松地控制渲染。
1. ShaderLab基本结构
一个Unity Shader的基本结构如下:
Shader "位置和名称"
{
Properties // 属性 (可选)
SubShader // 子着色器
SubShader // 子着色器
...
Fallback "低级Shader" // (可选)
}
2. Shader的位置和名称
每个Unity Shader文件的第一行都要指定Unity Shader的位置和名称:
Shader "Test/MyShader"{ }
如果要为材质添加我们所编写的Shader,以上述代码为例,单击材质面板中的Shader下拉菜单,然后依次选择Test >> MyShader即可。
3. Properties:材质与Shader的桥梁
Properties语义块中可定义一系列属性,这些属性会出现在材质面板中,我们可以直接在代码里设置这些属性的默认值,也可以在Unity中对这些属性重新进行设置。可以将这些属性理解为C#中的变量,它们会在SubShader语义块中被使用。它的语法结构如下