Unity ShaderLab 框架全解析4-1
该系列主要是根据Unity官方文档和个人搜集的知识对Unity ShaderLab框架进行总结,比较基础,用于提高知识学习、复习的效率。对于文中给到的文章链接的作者表示感谢
Pass
Pass可以说是ShaderLab当中比较重要的组成部分,当中包含着渲染核心——着色器(当然这里以顶点-片段着色器为例,表面着色器虽然没有Pass,但本质上也是顶点-片段着色器的封装)
一个Pass的基本结构如下(对应解释在代码注释中给到):
Pass
{
Name "name"//可以定义Pass名(可以不定义),便于以后在其他Subshader当中复用该Pass
//Pass特有的Tags
Tags{
……}
//渲染状态设定区域
//使用一系列指令设定Pass的渲染方式,具体指令下方会进行整理
//……
//用CGPRGRAM和下面的ENDCG包围的代码即顶点和片段着色器,这里也可以使用其他Shader语言比如HLSL/GLSL
//例如HLSLPROGRAM和ENDHLSL
CGPROGRAM
#pragma vertex vert//定义顶点着色器函数
#pragma fragment frag//定义片段着色器函数
//顶点着色器函数参数输入结构体
struct a2v
{
};
//片段着色器函数参数输入结构体
struct v2f
{
};
//顶点着色器函数
v2f vert (a2v v)
{
}