Unity有三種形式的Shader:
(1)Surface Shaders:對光照管線的高層抽象,受光照和影子效果影響的shader,使用Cg/HLSL語言編寫;不進行light相關操作的shader别使用Surface Shader,因為它會進行一堆光照計算;Surface Shader會自動轉換為Vertex and Fragment Shaders。
(2)Vertex and Fragment Shaders:最靈活的方式,不處理light相關操作的shader推薦使用該方式,使用Cg/HLSL語言編寫。
(3)Fixed Function Shaders:使用ShaderLab編寫,用來給不支援可程式設計shader的舊裝置寫渲染。
無論選擇哪種Shader,都需要使用ShaderLab架構來對Shader代碼進行組織。