虛幻引擎4的基於物理模型光照

轉載:http://blog.csdn.net/debugconsole/article/details/48767083




siggraph13上面EpicGames帶來的UnrealEngine4的PhysicallyBasedRendering(基於物理模型光照)部分內容。
EpicGames應該說進入PhysicallyBasedRendering較晚了,但這樣就有比較多的參考,這裏Epic重要的參考是迪斯尼在做cg(《無敵破壞王》等)使用的光照材質模型,並且在實際開發過程中進行了精簡,並且和用於遊戲開發的pipeline相結合,取得了不錯的成效。
在理論算法方面,在基於cubemap的secondary specular的brdf的計算上更加的數學準確,通過理論數學以及工程方法進行優化,是一個high點。
link
http://url.cn/KT07av

http://url.cn/MJprmC

http://url.cn/Q3Dipo

overview
首先epic介紹了其在使用物理光照方面的思考,大的方向上來看,業界也達成共識,換成基於物理模型的光照,會帶來更真實的效果,更精簡的美術參數和數據,在光照環境劇烈變化的情況下保持渲染結果的真實正確。
但是其實物理光照仍舊是一個開放性課題,其可以用的光照模型很多,很多研究開始是針對於離線渲染的cg來做,選擇什麼,在這種模型下面如何取捨是開發者面臨的非常難以決斷的問題。
epic在這方面的需求包括:
*性能
*簡單易用
*可以線性插值(這樣多個material可以混合)
*有較高的靈活性--可以寫實風,可以卡通風
同樣,強如epic在轉向物理光照的時候,也是遇到問題,雖然爭論不太多(已經業界標配了),但是應用起來還是適應了段時間。
同時epic一個非寫實項目已經開始了挺長時間,轉向物理光照也困難重重,儘管程序員表示物理光照可以搞定,並且迪斯尼也證明了卡通風格,但是已經做了很多數據,所以又給這個項目做了個向下兼容版。
也算是成長的煩惱吧!!
shading模型
和其他物理模型一樣,是macrofacet specular shading model:


epic games採用的是迪斯尼所使用的GGX模型,所以各數學公式是:
Distribution:


Geometry:


Fresnel:


這裏fresnel項是針對schlick approximation做了一個數學逼近,優化了性能,其中schlick approximation是:




ImageBasedLighting
(ImageBasedLighting,說人話就是使用環境貼圖來做反射,只是圖形學裏面把這種把環境光照信息存到環境貼圖裏面,然後在拿來渲染模型的方法叫做ImageBasedLighting。)
常規使用的方法可以說是源自經驗和嘗試,實際下來在數學上是不準確的。
數學上精準的推導是根據材質表面的粗糙程度來進行積分:


一些數學逼近:


紅框中的部分是光照信息,其實就是從環境貼圖中讀出的信息,是經過prefilter的。
籃框部分是積分的另一個部分,在進行數學推導:


這裏便轉換成了一個由roughtness和cos(theta)組成的函數,offline計算結果存到貼圖裏:


整個過程很漂亮,理論推導+engineering,把真正正確的做法,變成了現實。


材質模型
epic取了ggx材質模型的一部分,迪斯尼使用的ggx模型裏面包含了超級多的參數:


epic取了:
*base color
*metallic
*roughness
另外加上:
*cavity--用於計算材質上坑窪造成的陰影,這個沒多介紹

roughness和metallic美術用起來破費了些心思。


材質layering
ue4立面材質可以進一步混合,也就是材質編輯器中可以拿一個材質作爲一個節點來構建材質。
可以這樣做的重要理論基礎就是,材質中的參數都是可以進行線性插值,並且在插值後,物理屬性也是正確的,並不會破壞光照模型。
這樣可以說材質編輯器的能力進一步提升,當然如果美術飆起來也會弄出非常低效的材質把性能搞差。


epic提到其中一個應用就是做detail tiling,把一個正常材質上面疊加tiling很厲害的另外一個材質,進而得到精度超級高,但是卻又不需要大貼圖的新材質。
封面圖片就是detail tiling的結果:



lighting類型
ue4中還支持了面光源,球光源和tube光源。
面光源中嘗試了幾種方法,包括billboard reflection,cone intersection,最後使用的是在specular distribution項上面做一些改變:


效率不錯,效果還行吧,相比之下個人比較喜歡killzone的做法:
http://blog.csdn.net/toughbro/article/details/9072327

sphere&tube光源感覺挺沒意思的,不記了。



相關:
http://blog.csdn.net/pizi0475/article/details/49489929
http://zhuanlan.zhihu.com/p/20119162
http://zhuanlan.zhihu.com/p/20122884

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章