<label id="16111"></label>

<code id="16111"></code>

  1. <input id="16111"></input>
  2. <label id="16111"></label>

      收藏17
      發布新帖
      開啟左側

      [教程] 使用Amplify Shader Editor優化特效Shader(轉)

        [復制鏈接]

      馬上注冊,加入CGJOY,讓你輕松玩轉CGJOY。

      您需要 登錄 才可以下載或查看,沒有帳號?立即注冊

      x
      ASE相對于Shader Forge生成的代碼更加干凈, 用于制作特效的再合適不過,以下是使用ASE優化一個SF制作特效的經過:

      ## 分析美術用SF制作的Shader



      懶得裝SF, 直接分析代碼可知這個溶解效果大致有以下部分組成:

      • 使用Grab的扭曲
      • 4個Step指令 + 3個lerp指令組成的溶解
      • 時間變量控制的UV動畫
      • 2張貼圖 + N個uniform變量
      • 頂點色



      溝通去掉部分功能

      由于這個特效核心需求是實現刀光的溶解消失,因此可去掉一部分功能


      • 使用Grab的扭曲 (太快看不清楚)
      • 4個Step指令 + 3個lerp指令組成的溶解 (需要精簡)
      • 時間變量控制的UV動畫 (可以用動畫組件做UV動畫)
      • 2張貼圖 + N個uniform變量 (酌情精簡)
      • 頂點色 (有A通道,不需要)


      在ASE中重新創建Shader

      1 Sahder Forge會生成很多實際不使用的代碼,先要手動清理掉這部分代碼

      2 清理后的代碼可讀性依然很差,花時間在ASE重建如下:



      優化節點

      ASE可視化Shader編程的最大優點就是能實時看到當前節點的運算結果,下面開始優化:
      • 首先使用新舊練個shader調成一樣,用作優化是做對比,保證優化完后效果基本一致


      • 首先是4個step,這樣互換AB,結果其實就是反向,使用OneMinus代替


      • 繼續, 乘法的結果總是黑色的,這些節點都浪費了



           另一組Lerp的結果也一樣是浪費的

           

      • 修復bug, 改用合適的混合模式


      • 最后效果跟原來美術做的一樣, 但性能提升極大!




      跟原Shader相比

      • 去掉了grab
      • 2個Step指令 + 0個lerp指令組成的溶解
      • 動畫控制UV
      • 2張貼圖 + N個uniform變量 (酌情精簡)
      • 去掉了頂點色和法線語義等無用的代碼



      轉自CloudLiu




      評分

      參與人數 1CG券 +1 收起 理由
      賣貼圖的小張 + 1 很棒!我要用實際行動贊揚你!

      查看全部評分


      樓主熱帖

      ′.楓亭幽竹發表于 2019-8-2 15:37
      好像shader forge中也可以做這些優化呀??是不是只是邏輯問題?
      ∝JanSóN℡發表于 2019-8-5 09:39
      資源甚好,且行且閱讀
      抓狂_inner發表于 2019-8-6 12:09
      目前看不懂= =
      高級模式
      您需要登錄后才可以回帖 登錄 | 立即注冊

      本版積分規則

      起视碰看97视频在线