記一次Unity URP霧效異常解決
問題描述
這是一個在項目從builtin升級urp后遇到的問題:和原來一樣的fog設置,霧效變成了隨着相機角度的不同,會變濃或變淡,最濃的時候甚至白茫茫的一片。。。
心路歷程
首先認為是否urp算法不一致,但是各種參數調了后還是這個表現,心想不可能urp的霧這么離譜、根本不能正常使用。
然后看它這效果和角度有關,心想是否和燈光角度關聯上了?但是對燈光一頓操作仍然不正常。
真正解決問題
google一頓搜索,發現有一些開發者也遇到了同樣的問題:霧的效果和相機角度有關系。但是很多鏈接也是沒人回復。
最后在unity官方論壇里一個同樣問題頁面,有人說他把地面的cube換成plane之后正常了,另一個人說他認為這個是由於urp的霧效是逐頂點而非逐像素的,,
這是正解,由於霧的濃度只在頂點着色器中計算,而場景中只有一個box或類似的頂點很少的模型時(特別是用作大環境時),屏幕上的大多數像素點的霧濃度都是由僅僅幾個三角面的頂點濃度插值出來的。
這種情況下,頂點的位置就很微妙了,假如最終會顯示到屏幕的三角面頂點都離相機比較遠,那么頂點的霧濃度就很高,由它們一插值。。。白茫茫的一片效果就有了。
那么怎么解決呢,我這里就是把用到的環境模型的網格做細分,這個用blender就可以很方便的做到。
這樣就會更多的頂點顯示在屏幕上,它們的霧濃度是基於與相機距離正確計算的,由它們再去插值就比較正確了。
