UnityShader學習 UnityShader概覽

包含關係, 後包含前:

  1. shader
  2. 材質
  3. 要渲染的對象 ( Mesh 或 Particle System )
  • Standard Surface : 基於物理的標準光照模型 着色器
  • Unlit : 基本的頂點片元着色器
  • Image Effect : 後期效果
  • Compute : GPU計算, 與渲染無關

ShaderLab : 編寫Unity Shader的語言 的名字. 有下面這些語義塊:(還有其他語義,但基本不用)
名字 :
Shader "菜單1層/菜單2層" { }
材質上顯示的屬性 :

 Properties {
 	變量名 ("顯示名", 變量類型) = 默認值
 }

默認值必須指定

一些例子

着色器: 可用存在多個, 會選擇第一個能在目標平臺運行的來執行

SubShader {
	標籤
	狀態設置
	Pass {
		
	}
}
  • 標籤(可選) : 控制渲染引擎( 即unity) Tags {"標籤1" = "值" "標籤2" = "值"}
    SubShader的標籤
  • 狀態設置(可選) : 控制顯卡
    狀態設置

Pass : 一次完整的渲染流程, 數目過多會造成性能下降

Pass {
	Name "名字"
	標籤
	狀態設置
	代碼
}
  • 名字(可選) : 可用被其他Pass引用. UsePass "MyShader/PASSNAME" UsePass裏的 PASSNAME 必須大寫. (Unity 做了轉換)
  • 標籤,狀態設置同上. 標籤有不同的標籤. SubShader裏的狀態設置控制所有的Pass
    Pass的標籤
    還有其他形式的Pass, 如
  • UsePass
  • GrabPass

Fallback : 如果所有SubShader都無法用, 則用這個指定的SubShader, 或不管了

Fallback "名字"
Fallback Off
發佈了29 篇原創文章 · 獲贊 4 · 訪問量 8457
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章