【USparkle專欄】如果你深懷絕技,愛“搞點研究”,樂于分享也博采眾長,我們期待你的加入,讓智慧的火花碰撞交織,讓知識的傳遞生生不息!
這是侑虎科技第1771篇文章,感謝作者RE Ding供稿。歡迎轉發分享,未經作者授權請勿轉載。如果您有任何獨到的見解或者發現也歡迎聯系我們,一起探討。(QQ群:793972859)
作者主頁:
https://www.zhihu.com/people/ding-yan-qing-75
一、原理
在現實中我們常見的模糊效果很多來自磨砂玻璃,磨砂玻璃之所以產生模糊的效果是由于光線照射到玻璃上發生的一系列折射/反射/散射現象。
特別是磨砂玻璃微觀視角下凹凸起伏的表面會使光線的折射變得很復雜,使折射的影像變得朦朧模糊。
并且相較于光滑的玻璃,磨砂玻璃粗糙的表面會表現為漫反射的效果。光線在進入顆粒結構的磨砂玻璃后產生的不規則散射也是模糊效果的重要成因。
常見的模糊算法都是在多次采樣的基礎上按照一定的權重取均值,包括高斯模糊、動態模糊和景深模糊等都是如此,所以對高分辨率紋理的卷積操作是模糊算法的重要性能瓶頸。
考慮到卷積模糊算法的性能消耗,作者選擇另辟蹊徑,通過模擬磨砂玻璃的折射與反射實現類似的模糊效果。
二、磨砂玻璃
UE
大致思路是:使用UE基于物理的折射與反射光照模型實現磨砂玻璃效果,且暫不考慮光線散射的因素。
整體材質節點如下:
需要注意的要點:
1. 開啟材質折射功能
在詳情面板中,將混合模式(Blend Mode)從不透明(Opaque)更改為半透明(Translucent),并將照明模型(Lighting Model)從體積無方向(Volumetric Non Directional)更改為表面半透明體積(Surface TranslucencyVolume)。更改這些設置會啟用主材質節點上的折射(Refraction)引腳。完成之后,材質細節(Details)面板應該類似于下圖。
2. 兩種折射模式的選擇
常用的兩種折射模式:折射率(Index of Refraction)和像素法線偏移(Pixel Normal Offset)
區別:
折射率(Index of Refraction)模型模擬了光線在介質之間傳播時的折射方式。這非常適合小物體,例如罐子、玻璃杯和其他曲面。 但是,用于較大的平面時,可能會產生不可預測的結果和瑕疵,因為場景顏色是從屏幕之外讀取的。
像素法線偏移(Pixel Normal Offset)使用頂點法線作為參考,然后通過計算每個像素的法線與頂點法線的差異程度,從而算出折射偏移。這很適合較大的平面,比如水面,因為你不需要用常量偏移來從屏幕之外讀取數據。
具體選擇何種模式可以根據項目需求進行試驗。作者制作的磨砂玻璃主要用于平面模型,選擇的折射模式是像素法線偏移。因為在折射率模式下模糊效果會受到視線夾角的強烈影響,在某些視線方向下模糊效果會消失或者過強。
3. 法線紋理采樣器Mip模式設為“Mip偏差”
設置Mip偏差的必要性:默認的Mip計算方式會使貼圖在較遠的距離下清晰度下降,導致模糊效果在遠距離時消失,而使用“Mip等級”設定固定的MipLevel級別雖然解決了遠處模糊效果消失的問題,但也會導致低像素對應高紋素造成的噪點閃爍問題。
所以需要選擇“Mip偏差”模式,并給一個偏移(Bias)參數以適當偏移降低MipLevel。
4. 其他效果和功能
反射/菲尼爾/其它自定義效果可以根據需求來添加。
并且折射模糊可以通過替換不同效果的法線貼圖實現多種風格的模糊效果。
折射模糊實現的磨砂玻璃與普通玻璃的性能消耗相當,遠低于卷積算法實現的磨砂玻璃。
實際效果對比:
折射模糊
近距離的折射模糊
卷積模糊
近距離的卷積模糊
Unity
Unity中沒有提供類似UE的折射實現方案,所以模糊效果的實現有些許不同,但其思路也是以折射的方式實現磨砂玻璃效果。
基本方法:以噪聲擾動UV偏移場景顏色,然后通過比較場景深度剔除對玻璃前面物體的錯誤偏移。
材質節點展示:
整體
噪聲采樣部分
深度比較遮罩
最終顏色輸出
三、需要注意的要點
1. 啟用Depth Texture與Opaque Texture,SurfaceType設置為Transparent。
2. 建議使用RGB噪聲貼圖而非灰度噪聲,灰度噪聲在對UV偏移時方向為(-1,-1)~(1,1),而RGB噪聲的偏移會更隨機。
3. 如果沒有深度遮罩,玻璃前面的物體也會被模糊。
沒有深度遮罩時
4. 最終顏色建議輸出到Emission而非BaseColor,因為BaseColor輸入的顏色應該不包含光照信息,場景顏色本身包含光照結果,如果再對其進行光照計算會出現不可控的顏色和亮度。
5. 設置噪聲貼圖Mip采樣模式為Bias,并根據需要把Bias參數設置為小于0的整數。
實際效果:
四、模糊后處理
磨砂玻璃的效果也可以用于后處理材質,提供另一種美術風格的模糊效果。
UE
整體材質節點如下:
折射模糊:
卷積模糊:
Unity
整體材質節點如下:
M實際效果:
文末,再次感謝 RE Ding 的分享, 作者主頁: https://www.zhihu.com/people/ding-yan-qing-75, 如果您有任何獨到的見解或者發現也歡迎聯系我們,一起探討。(QQ群: 793972859 )。
近期精彩回顧
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.