目錄
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文件
待更新