本章主要描述在unity CG语言编写Shader的时候,顶点着色器的参数。
一般在Shader中都会将顶点着色器的参数封装为一个结构体:
struct appdata_t
{
。。。
UNITY_VERTEX_INPUT_INSTANCE_ID
};
结构体中的属性都是MeshRenderer在每次DrawCall的时候传递过来的,我们在Shader中需要用到什么属性,就在结构体中定义什么属性。
MeshRenderer传递过来的参数具体包括如下几种:
float4 vertex : POSITION; //顶点坐标
float4 tangent : TANGENT; // mesh到表面法线的正切值
float3 normal : NORMAL; //以对象的坐标系标准化至单位长度
float4 texcoord : TEXCOORD0;//纹理坐标系的第0个集合
float4 texcoord1 : TEXCOORD1; //纹理坐标系的第1个集合
fixed4 color : COLOR;//颜色,通常是常量,其值就是在unity对象属性窗口中针对图片设置的颜色值:
在Unity安装目录Editor\Data\CGIncludes提供了常见的CG库,我们常用的有