后處理深度描邊可以通過取得邊緣深度變化大的區域進行描邊,一方面可以用來做角色的等距內描邊,避免了菲尼爾邊緣光不整齊的問題,另一方面可以結合場景掃描等特效使用,達到更豐富的效果:
后來解決了開啟TAA十字線和鋸齒問題,若遇到這2個問題請至文章底部查看。
參考:https://www.bilibili.com/video/BV11e4y1n7dD
1.創建材質函數
我們通過一種卷積算子計算邊緣,先創建該算子的材質函數
2.編寫材質函數藍圖
該材質藍圖傳入偏移值,輸出5個UV采樣坐標信息。
3.編寫核心后處理材質
新建材質球PPS,設置材質球參數類型為Post Process(后處理材質球)。
連接材質球節點,計算描邊結果并與場景顏色合并。
將后處理材質掛載于Volume上:
因為直接使用的場景深度,這時候整個場景都被深度描邊了:
4.使用自定義深度優化
這不是想要的效果,我們將場景深度改為自定義深度。
框選材質球PPS內的所有SceneTexture:SceneDepth節點,進行修改。
多選所有需要深度描邊的物體,勾選Render CustomDepth Pass:
最終完成描邊效果。
補充,開啟TAA時會有十字線的問題,可縮小該系數解決:
關于鋸齒問題,可以將后處理的執行位置移動至ToneMapping之前,讓引擎自帶抗鋸齒來進行處理: