包含關係, 後包含前:
- shader
- 材質
- 要渲染的對象 ( Mesh 或 Particle System )
- Standard Surface : 基於物理的標準光照模型 着色器
- Unlit : 基本的頂點片元着色器
- Image Effect : 後期效果
- Compute : GPU計算, 與渲染無關
ShaderLab : 編寫Unity Shader的語言 的名字. 有下面這些語義塊:(還有其他語義,但基本不用)
名字 :
Shader "菜單1層/菜單2層" { }
材質上顯示的屬性 :
Properties {
變量名 ("顯示名", 變量類型) = 默認值
}
默認值必須指定
着色器: 可用存在多個, 會選擇第一個能在目標平臺運行的來執行
SubShader {
標籤
狀態設置
Pass {
}
}
- 標籤(可選) : 控制渲染引擎( 即unity)
Tags {"標籤1" = "值" "標籤2" = "值"}
- 狀態設置(可選) : 控制顯卡
Pass : 一次完整的渲染流程, 數目過多會造成性能下降
Pass {
Name "名字"
標籤
狀態設置
代碼
}
- 名字(可選) : 可用被其他Pass引用.
UsePass "MyShader/PASSNAME"
UsePass裏的 PASSNAME 必須大寫. (Unity 做了轉換) - 標籤,狀態設置同上. 標籤有不同的標籤. SubShader裏的狀態設置控制所有的Pass
還有其他形式的Pass, 如 - UsePass
- GrabPass
Fallback : 如果所有SubShader都無法用, 則用這個指定的SubShader, 或不管了
Fallback "名字"
Fallback Off