顶点/片元着色器
顶点/片元着色器的结构大体如下:
一个简单的Unity Shader:
其中:
#pragma vertex vert
#pragma fragment frag
它们告诉Unity,哪些函数包含了顶点着色器的代码,哪些函数包含了片元着色器的代码。
通用的编译指令表如下:
#pragma vertex name
#pragma fragment name
这是顶点着色器代码,它是逐顶点执行的。vert函数的输入v包含了这个顶点的位置,这是通过POSITION语义指定的,它返回值是一个float4类型的变量,它是该顶点在裁剪空间中的位置,POSITION和SV_POSITION都是CG/HLSL中的语义,它们是不可省略的,这些语义将告诉系统用户需要哪些输入值,以及用户的输出是什么。而UNITY_MATRIX_MVP矩阵是Unity内置的模型·观察·投影矩阵。