在Unity中,所有的Shader程序都是使用名为“ShaderLab”的声明性语言进行编写的。在Shader文件中,ShaderLab通过嵌套花括号的方式声明着色器的各部分内容。例如:哪些属性需要在材质面板上显示;使用哪种混合模式进行颜色混合;如果运行失败,回退到哪个着色器等,ShaderLab语法不区分大小写。而真正意义上的Shader代码则是在CGPROGRAM代码块中编写的。
一、代码框架
无论选择何种语言编写Shader,无论编写的Shader是何种类型,UnityShader总是通过ShaderLab语言进行包装并组织结构。通常情况下,Shader的大致结构如下所示:
Shader "Custom/Simple Shader"
{
Properties
{
//开放到材质面板的属性
}
SubShader
{
Pass
{
//顶点-片段着色器
//或者表面着色器
//或者固定函数着色器
}
}
SubShader
{
Pass
{
//更加精简的版本
//为了在旧的图形设备上运行
}
}
CustomEditor ""
Fallback ""
}
1、Shader的名称
Shader程序的第一行代码用来声明该Shader的名称以及所在路径。名称就是
订阅专栏 解锁全文
105

被折叠的 条评论
为什么被折叠?



