目录
1、Unity提供的CG/HLSL语义
语义就是一个赋值给Shader输入和输出的字符串,这个字符串表达了这个参数的含义。
顶点着色器输入时常用语义
片元着色器输入时常用语义
片元着色器输出时常用语义
2、Unity提供的内置文件和变量
内置文件类似于引用头文件,使用内置文件和变量可以大大方便开发者的开发过程。
常用的包含文件
UnityShaderVariables.cginc是会被自动包含的
2.1、UnityCG.cginc文件
UnityCG是最常接触的一个包含文件,提供了很多常用的结构体和函数。
UnityCG常用结构体
struct appdata_base {
float4 vertex : POSITION;
float3 normal : NORMAL;
float4 texcoord : TEXCOORD0;
UNITY_VERTEX_INPUT_INSTANCE_ID
};
struct appdata_tan {
float4 vertex : POSITION;
float4 tangent : TANGENT;
float3 normal : NORMAL;
float4 texcoord : TEXCOORD0;
UNITY_VERTEX_INPUT_INSTANCE_ID
};
struct appdata_full {
float4 vertex : POSITION;
float4 tangent : TANGENT;
float3 normal : NORMAL;
float4 texcoord : TEXCOORD0;
float4 texcoord1 : TEXCOORD1;
float4 texcoord2 : TEXCOORD2;
float4 texcoord3 : TEXCOORD3;
fixed4 color : COLOR;
UNITY_VERTEX_INPUT_INSTANCE_ID
};
struct appdata_img
{
float4 vertex : POSITION;
half2 texcoord : TEXCOORD0;
UNITY_VERTEX_INPUT_INSTANCE_ID
};
struct v2f_img
{
float4 pos : SV_POSITION;
half2 uv : TEXCOORD0;
UNITY_VERTEX_INPUT_INSTANCE_ID
UNITY_VERTEX_OUTPUT_STEREO
};
UnityCG常用函数
2.2、UnityShaderVariables.cginc文件
摄像机
矩阵
2.3、Lighting.cginc文件
待更新
2.4、HLSLSupport.cginc文件
待更新