1、Shader是渲染流水线中的某些特定阶段,如顶点着色器阶段、片元着色器阶段等。
在Unity中,我们需要配合使用材质和Unity Shader才能达到需要的效果,一个常见的流程是:
①创建一个材质
②创建一个Unity Shader,并把它赋给上一步中创建的材质
③把材质赋给要渲染的对象
④在材质面板中调整Unity Shader的属性,以得到满意的效果
在上述过程中,Unity Shader定义了渲染所需的各种代码(如顶点着色器和片元着色器)、属性(如使用哪些纹理等)和指令(渲染和标签设置等),而材质则允许我们调节这些属性,并将其最终赋予相应的模型。
Unity Shader与渲染管线的Shader有很大的不同,一个提供了4种Unity Shader模板供我们选择:
#Standard Surface Shader:表面着色器的实现方法
#Unlit Shader:顶点/片元着色器
#Image Effect Shader:为实现各种屏幕后处理效果提供了一个基本模板
#Compute Shader:利用GPU的并行性进行一些与常规渲染流水线无关的计算
2、ShaderLab
Unity Shader为控制渲染过程提供了一层抽象,所以的Unity Shader都是使用ShaderLab来编写的。
一个Unity Shader的基础结构如下所示:
Shader "ShaderName" {
Properties {
</