Unity-ShaderLab介绍
本文章内容源自-Unity Shader入门精要。仅为自己增加记忆程度所写。
直接进入主题,什么是ShaderLab?
Nicholas Francis说了,ShaderLab is a friend you can afford.
Unity Shader是Unity为开发者提供的高层级的渲染抽象层。Unity希望通过这种方式开发者能更轻松的控制渲染。如下图展示:

Unity Shader为控制渲染过程提供了一层抽象。如果没有使用Unity Shader(左图),开发者需要和很多文件和设置打交道,才能让画面呈现出想要的效果;而在Unity Shader的帮助下(右图),开发者只需要使用ShaderLab来编写Unity Shader文件就可以完成所有的工作 。
在Unity中,所有的Unity Shader都是通过ShaderLab来编写的。ShaderLab是Unity提供的编写Unity Shader的一种说明性语言。它使用了一些嵌套在花括号内部的语义(syntax)来描述一个Unity Shader文件的结构。这些结构包含了许多渲染所需的数据。例如Properties语句块中定义了着色器所需的各种属性,这些属性将会出现在材质面板中。从设计上来说,ShaderLab类似CgFX和Direct3D Effects(.FX)语言,他们都定义了要显示一个材质所需的所有东西,而不仅仅是着色器代码。
一个Unity Shader的基础结构如下所示:
Shader "ShaderName" {
Properties{
//属性
}
SubShader{
//显卡A使用的子着色器
}
SubShader{
//显卡B使用的子着色器
}
Fallback "VertexLit"
}
Unity会根据这个文件的结构来编译成真正的Shader文件,而开发者只需要和Unity Shader打交道即可。
浙公网安备 33010602011771号