Unity插件ASE的之Template


為什么需要ASE模板

以開發一套角色Shader的過程為例:

  1. 開發基礎版本, 滿足基本功能
  2. 開發角色溶解, 褪色等基於基礎版本Shader
  3. 基礎版本迭代改代碼
  4. 基於基礎版本的Shader跟着迭代改代碼
  5. 基礎版本再次迭代改代碼
  6. 基於基礎版本的Shader再次跟着迭代改代碼
    .......

以上過程可見維護成本之高, 為了降低維護難度, Unity Standard Shader的辦法是把代碼 "共用" 的部分拆分到 ".cginc"文件中, 也就是的Shaderlab的頭文件.然而這么干的話會導致代碼可讀性很差, 手工維護代碼也難免出錯.

ASE則提供了模板功能來實現方便維護的需求.ASE允許用戶從已存在的Shader用作基礎或模板創建新的Shader. 模板是常規Unity Shader,只是在關鍵點上放置了特殊的ASE標記,這些標記寫為注釋,因此它們不會影響着色器編譯及其默認行為。

同樣已開發一套角色Shader的過程為例, ASE工作流是這樣的:

  1. 開發基礎版本, 滿足基本功能
  2. 基礎版本轉換為ASE模板
  3. 使用模板在ASE中制作角色溶解,褪色等版本的Shader
  4. 模板迭代改代碼
  5. 溶解,褪色等版本的Shader重新編譯
    ......

上下對比,ASE主要有以下優勢:

  • ASE是可視化編程,自動編譯成Shader代碼,開發效率高
  • 復雜代碼確實手寫代碼更有優勢, 如角色光照部分的代碼可以的作為的模板中不對外暴露修改的部分, 所以在ASE中制作溶解褪色效果時,節點連接變得極為簡潔
  • 修改模板后,基於模板的shader只要重新編譯即可

以上可知, ASE可極大減少 "整套的Shader" 的開發維護成本.

最后附上 Amplify Shader Editor Template文檔


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM