包含文件
文件名 |
描述 |
UnityCG.cginc |
包含了最常使用的幫助函數,宏和結構體 |
UnityShaderVariables.cginc |
在編譯Unity Shader時,會被自動包含進來。包含了許多內置的全局變量,如UNITY_MATRIX_MVP 等 |
Lighting.cginc |
包含了各類內置的光照模型,若是編寫的是Surface Shader的話,會自動包含進來。 |
HLSLSupport.cginc |
在編譯Unity Shader時,會被自動包含進來。聲明瞭不少用於跨平臺編譯的宏和定義。 |
UnityCG.cginc
是咱們最常接觸的一個包含文件。咱們使用不少該文件提供的結構體和函數,爲咱們的編寫提供方便。例如,咱們能夠直接使用UnityCG.cginc中預約義的結構體做爲頂點的輸入輸出。app
名稱 |
描述 |
包含的變量 |
appdata_base |
可用於頂點着色器的輸入 |
頂點位置,頂點法線,第一組紋理座標 |
appdata_tan |
可用於頂點着色器的輸入 |
頂點位置,頂點切線,頂點法線,第一組紋理座標 |
appdata_full |
可用於頂點着色器的輸入 |
頂點位置,頂點切線,頂點法線,四組(或更多)紋理座標 |
appdata_img |
可用於頂點着色器的輸入 |
頂點位置,第一組紋理座標 |
v2f_img |
可用於頂點着色器的輸出 |
裁剪空間中位置,紋理座標 |
語義
咱們剛纔看到的SV_POSITION,POSITION,COLOR0都是語義(Semantics)
。語義實際上就是一個賦給Shader輸入和函數
語義 |
描述 |
POSITION |
模型空間中的頂點位置,一般是float4類型 |
NORMAL |
頂點法線,一般是float3類型 |
TANGENT |
頂點切線,一般是float4類型 |
TEXCOORDn |
該頂點的紋理座標,一般是float2或float4類型 |
COLOR |
頂點顏色,一般是fixed4或float4類型 |
語義 |
描述 |
SV_POSITION |
裁剪空間中的頂點座標。 |
COLOR0 |
一般用於輸出第一組頂點顏色,但不是必需的 |
COLOR1 |
一般用於輸出第二組頂點顏色,但不是必需的 |
TEXCOORD0 |
一般用於輸出紋理座標 |