Unity-內(nèi)置著色器 include 文件
Unity 提供了若干文件供著色器程序用于引入預定義的變量和 helper 函數(shù)。這可以通過標準?#include
?指令來完成,例如:
Unity 中的著色器 include 文件采用?.cginc
?擴展名,內(nèi)置的著色器 include 文件包括:
HLSLSupport.cginc
?-_(自動包含)_用于跨平臺著色器編譯的 helper 宏和定義。UnityShaderVariables.cginc
?-_(自動包含)_常用的全局變量。UnityCG.cginc
?- 常用的?helper 函數(shù)。AutoLight.cginc
?- 光照和陰影功能,例如表面著色器在內(nèi)部使用此文件。Lighting.cginc
?- 標準表面著色器光照模型;當您編寫表面著色器時會自動包含。TerrainEngine.cginc
?- 地形和植被著色器的 helper 函數(shù)。
如果您要查看任何 helper 代碼具體執(zhí)行的操作,可在 Unity 應用程序中找到這些文件(Windows 上位于?{unity 安裝路徑}/Data/CGIncludes/UnityCG.cginc__,Mac 上位于?/Applications/Unity/Unity.app/Contents/CGIncludes/UnityCG.cginc__)。
HLSLSupport.cginc
編譯 CGPROGRAM 著色器時會自動包含此文件(但不會對 HLSLPROGRAM 著色器包含此文件)。此文件聲明各種預處理器宏以幫助進行多平臺著色器開發(fā)。
UnityShaderVariables.cginc
編譯 CGPROGRAM 著色器時會自動包含此文件(但不會對 HLSLPROGRAM 著色器包含此文件)。此文件聲明著色器中常用的各種內(nèi)置全局變量。
UnityCG.cginc
Unity 著色器中通常會包含此文件。此文件聲明大量內(nèi)置 helper 函數(shù)和數(shù)據(jù)結(jié)構(gòu)。
UnityCG.cginc 中的數(shù)據(jù)結(jié)構(gòu)
struct?
appdata_base
:頂點著色器輸入,包含位置、法線和一個紋理坐標。struct?
appdata_tan
:頂點著色器輸入,包含位置、法線、切線和一個紋理坐標。struct?
appdata_full
:頂點著色器輸入,包含位置、法線、切線、頂點顏色和兩個紋理坐標。struct?
appdata_img
: 頂點著色器輸入,包含位置和一個紋理坐標。