什么是Shader?
Shader就是:
#GPU流水线上一些可高度编程的阶段,而由着色器编译出来的最终代码是会在GPU上运行的(对于固定管线的渲染来说,着色器有时等同于一些特定的渲染设置);
#有一些特定类型的着色器;
#依靠着色器我们可以控制流水线中的渲染细节;
ShaderLab
Unity Shader是Unity为开发者提供的高层级的渲染抽象层。在Unity Shader都是使用ShaderLab来编写的。ShaderLab是Unity提供的编写Unity Shader的一种说明性语言。它使用了一些嵌套在花括号内部的语义(syntax)来描述一个Unity Shader文件的结构。这些结构包含了许多渲染所需要的数据。
一个Unity Shader的基础结构如下:
Shader "ShaderName" {
Properties {
//属性
}
SubShader {
//显卡A使用的子着色器
}
SubShader {
//显卡B使用的子着色器
}
Fallback "VertexLit"
}
Unity Shader的结构
每个Unity Shader文件的第一行都需要通过Shader语义来指定Unity Shader的名字。通过在字符串中添加(“/”),可以控制Unity Shader在材质面板中出现的位置。