虛幻引擎的物理渲染(Real Shading in Unreal Engine 4)
UE4的PBR使用 Directional light BRDF + Imaga-based lighting
BRDF: Diffuse BRDF + Specular BRDF
Diffuse BRDF:
使用了Lambert,因為在diffuse項上更複雜的模型和Lambert區別很小
Specular BRDF
使用的是通用的macrofacet model,關鍵在與每一項的選擇上
D(h) : Specular distribution用了GGX(Trowbridge-Reitz), GGX的優勢:Fairly cheap + Longer tail(look more natural)
G(l, v, h):Geometric shadowing,用了Schlick, Schlick優勢:Matched to Smith, Cheaper but difference is minor, 需要注意的是這裡roughness用了Disneys roughness remapping,
roughness remapping:
reamapping可以在感知上在roughness上有更線性的變化,沒有remapping那麼在調節shiny材質時需要額外的參數調整
Fresnel:Schlick
Image-base lighting:
需要克服的問題:每個environment map只採樣一次,但是要匹配importance-sampled的結果,公式表示如下:
UE4採用的解決方案:split the sum, 然後預計算分開的每個部分,split如下,
第一部分存儲在pre-filtered environment map中,
第二部分存儲在2D的LUT中
結果對比圖如下:
另外UE4的Material model中使用了BaseColor + Metallic + Roughness + Cavity,並沒有使用Specular信息(後來UE4中實際提供了一個specular paramters)。其中Cavity相當於非常小範圍trace的AO,用來表示real-time shadow不能表示的小shadow。
另外由於Image Based Lighting要使用LUT,這在部分移動設備上會產生Dependent Texture Read,Birian karis在https://www.unrealengine.com/en-US/blog/physically-based-shading-on-mobile 分享了這部分在mobile上的優化。
推薦閱讀:
※什麼時候購買次世代主機(PS4 和 Xbox One)合適?
※請教pbr四張貼圖的製作原理,跟以往貼圖製作起來的區別。?
※有沒有可能從硬體上山寨出來廉價的次世代主機?
※遊戲主機的 本世代 和 次世代 是什麼意思?
※想請各位大神幫我看看這個模型的水平,謝謝大家?