? 暴风雨夜晚被公侵犯的人妻,欧美日韩不卡中文字幕在线,电影在线观看日本成人
    • <tfoot id="4kpre"><wbr id="4kpre"></wbr></tfoot>
      <form id="4kpre"></form>
    • <tfoot id="4kpre"><label id="4kpre"><output id="4kpre"></output></label></tfoot>
    • 聯(lián)系我們

      給我們留言

      聯(lián)系我們

      地址:福建省晉江市青陽(yáng)街道洪山路國(guó)際工業(yè)設(shè)計(jì)園納金網(wǎng)

      郵箱:info@narkii.com

      電話:0595-82682267

      (周一到周五, 周六周日休息)

      當(dāng)前位置:主頁(yè) > 3D教程 > 圖文教程

      讓移動(dòng)平臺(tái)也能享受UE4物理著色

      來(lái)源: 52vr | 責(zé)任編輯:傳說(shuō)的落葉 | 發(fā)布時(shí)間: 2019-06-04 08:21 | 瀏覽量:

      讓移動(dòng)平臺(tái)也能享受UE4物理著色

      在演示后,我進(jìn)行了一些小小的變更。我刪除了Disney的"hotness"對(duì)幾何方面的修改。根據(jù)Eric Heitz的 最新成果,我可能會(huì)再次改進(jìn)它,在陰影和蒙板間添加關(guān)聯(lián)。但我沒(méi)有在其中加入孔洞(Cavity)參數(shù)。我們?cè)朐谘菔厩斑M(jìn)行此項(xiàng)變更,但發(fā)現(xiàn)使用了可控非傳導(dǎo)性高光反射率。因此我們轉(zhuǎn)而使用Disney模型中定義的高光參數(shù)。

       

      我特別想談到的是這個(gè)著色模型是如何適用于移動(dòng)平臺(tái)的。如您需要查看虛幻引擎4的移動(dòng)平臺(tái)渲染器,請(qǐng)查閱GDC的這些幻燈片。關(guān)于其使用的示例,請(qǐng)查看禪技術(shù)演示,這是在iPad Air上以4xMSAA 1080p在30hz下運(yùn)行的。您也可以查看 靈魂技術(shù)演示。

       

      在一開(kāi)始我們的主要目標(biāo)是想使用和高端PC相同的內(nèi)容創(chuàng)建工作流程。我們還想要支持對(duì)相同資源的渲染,這樣當(dāng)我們?cè)谝苿?dòng)設(shè)備上運(yùn)行它時(shí),所有內(nèi)容都盡我們所能地類似于采用高端渲染器所產(chǎn)生的效果。這意味著要完成許多細(xì)節(jié),比如將gamma值調(diào)整正確,但同時(shí)也意味著我們需要讓著色器也以相同方式運(yùn)作,這樣材質(zhì)能在PC,游戲機(jī)平臺(tái)和移動(dòng)設(shè)備上也以相同方式運(yùn)行。要完成這個(gè)目標(biāo),我們支持在我談話中解釋過(guò)的相同材質(zhì)模型。而底色(BaseColor)、金屬色(Metallic)、高光(Specular)、粗糙度(Roughness)這些參數(shù)以完全同樣的方式產(chǎn)生作用。

       

      很明顯,在移動(dòng)設(shè)備上的運(yùn)算能力要弱得多,所以我們不可能對(duì)每個(gè)光照都計(jì)算其BRDF(雙向反射分布函數(shù))。實(shí)際上,我們僅僅支持動(dòng)態(tài)運(yùn)算的單方向日光。對(duì)陰影進(jìn)行預(yù)計(jì)算并將其作為貼圖空間中帶符號(hào)的距離場(chǎng)來(lái)存儲(chǔ)。所有其它光照都被烘焙到光照貼圖中。光照貼圖使用類似HDR編碼的SH定向表示來(lái)作為高端渲染器,但會(huì)根據(jù)不具有獨(dú)立的、非關(guān)聯(lián)的、alpha壓縮的特點(diǎn)的PVRTC進(jìn)行更高質(zhì)量的壓縮。類似于高端渲染器,預(yù)計(jì)算的高光使用預(yù)卷積的環(huán)境貼圖。使用的是完全相同的預(yù)卷積,并且它們根據(jù)光照貼圖進(jìn)行類似的標(biāo)準(zhǔn)化和縮放。對(duì)于移動(dòng)平臺(tái)來(lái)說(shuō),每個(gè)像素僅提取一張環(huán)境貼圖。

       

      環(huán)境 BRDF

      有趣的一點(diǎn)是我們?nèi)绾斡?jì)算環(huán)境BRDF,對(duì)于高端平臺(tái)來(lái)說(shuō),它是使用Monte Carlo整合來(lái)進(jìn)行預(yù)計(jì)算的,并存儲(chǔ)于二維LUT中。對(duì)移動(dòng)平臺(tái)的硬件來(lái)說(shuō),依賴于貼圖提取非常消耗系統(tǒng)資源,更糟的是,OpenGL ES2的8個(gè)采樣器的限制造成了極大的使用限制。使用這個(gè)LUT來(lái)處理采樣器是完全不行的。我轉(zhuǎn)而基于Dimitar Lazarov的作品來(lái)作出了類似的解析版本。形式類似,但根據(jù)我們的著色模型和粗糙度參數(shù)進(jìn)行了調(diào)整。函數(shù)列于下方:

      [代碼]:

      01 <font size="3">half3 EnvBRDFApprox( half3 SpecularColor, half Roughness, half NoV )
      02  
      03 {
      04  
      05 const half4 c0 = { -1, -0.0275, -0.572, 0.022 };
      06  
      07 const half4 c1 = { 1, 0.0425, 1.04, -0.04 };
      08  
      09 half4 r = Roughness * c0 + c1;
      10  
      11 half a004 = min( r.x * r.x, exp2( -9.28 * NoV ) ) * r.x + r.y;
      12  
      13 half2 AB = half2( -1.04, 1.04 ) * a004 + r.zw;
      14  
      15 return SpecularColor * AB.x + AB.y;
      16  
      17 }</font>

       

       

      這表示我們對(duì)基于光照的貼圖具有較合理的Fresnel值和粗糙度。

      125914kkr6rtqrzgkbr6nd

      在高端平臺(tái)上使用的ENVBRDF

       

      125914cqv13qlmqiw0mg95

      在移動(dòng)平臺(tái)上使用的ENVBRDF近似貼圖

       

       

      我們檢測(cè)到金屬色和高光材質(zhì)輸出并不連接在一起(這意味著使用了默認(rèn)值)。傳統(tǒng)的非金屬材質(zhì)就是這樣的。本例中我們可以進(jìn)一步優(yōu)化函數(shù)。

      [代碼]:

      01 <font size="3">half EnvBRDFApproxNonmetal( half Roughness, half NoV )
      02  
      03 {
      04  
      05 // Same as EnvBRDFApprox( 0.04, Roughness, NoV )
      06  
      07 const half2 c0 = { -1, -0.0275 };
      08  
      09 const half2 c1 = { 1, 0.0425 };
      10  
      11 half2 r = Roughness * c0 + c1;
      12  
      13 return min( r.x * r.x, exp2( -9.28 * NoV ) ) * r.x + r.y;
      14  
      15 }</font>

       

       

      我們進(jìn)行類似的優(yōu)化來(lái)完全避免使用環(huán)境貼圖。一些游戲?yàn)椴划a(chǎn)生高光而進(jìn)行優(yōu)化,但并不減少性能消耗。我們轉(zhuǎn)而使用"完全粗糙"的標(biāo)識(shí),它將Roughness(粗糙度)設(shè)置為1并優(yōu)化常量因數(shù)。我們可以看到如下內(nèi)容:

      [代碼]:

      1 <font size="3">EnvBRDFApprox( SpecularColor, 1, 1 ) == SpecularColor * 0.4524 - 0.0024</font>

       

      在此處我進(jìn)行了簡(jiǎn)化:

      [代碼]:

      1 <font size="3">DiffuseColor += SpecularColor * 0.45;
      2  
      3 SpecularColor = 0;
      4  
      5 </font>

       

      我們僅對(duì)真正需要額外系統(tǒng)性能來(lái)處理的選定對(duì)象使用此標(biāo)識(shí)。

       

      定向光源(DIRECTIONAL LIGHT)

      我最后要談到的是如何計(jì)算日光。我之前談到了太陽(yáng)是唯一進(jìn)行動(dòng)態(tài)光照計(jì)算的。不幸的是,即使對(duì)于單個(gè)光照來(lái)說(shuō),全高端著色模型依然占用了過(guò)多的系統(tǒng)性能。而我們使用EnvBRDF來(lái)以類似于預(yù)集成的方式對(duì)其一部分進(jìn)行計(jì)算。我們同時(shí)還有用來(lái)對(duì)環(huán)境貼圖取樣的反射向量。我們的想法是對(duì)用于預(yù)過(guò)濾環(huán)境貼圖的徑向?qū)ΨQ葉片進(jìn)行分析性評(píng)估,并隨后將其結(jié)果與EnvBRDF值相乘,正如我們對(duì)IBL所進(jìn)行的運(yùn)算那樣。將此視為對(duì)比入射光方向來(lái)分析性地整合葉片,而不是我們使用環(huán)境貼圖所做的數(shù)值整合。

       

      首先,我們使用Blinn來(lái)替代GGX NDF。我們隨后使用徑向的Phong葉片來(lái)近似處理Blinn。

      125914l6mp666rronymjjy

      Phong進(jìn)一步使用球形高斯來(lái)近似處理approximated with a Spherical Gaussian):

      125914qvvsso1k1sovv8tt

       

       

      這讓我們獲得了最終的優(yōu)化形式:

      [代碼]:

      01 <font size="3">half D_Approx( half Roughness, half RoL )
      02  
      03 {
      04  
      05 half a = Roughness * Roughness;
      06  
      07 half a2 = a * a;
      08  
      09 float rcp_a2 = rcp(a2);
      10  
      11 // 0.5 / ln(2), 0.275 / ln(2)
      12  
      13 half c = 0.72134752 * rcp_a2 + 0.39674113;
      14  
      15 return rcp_a2 * exp2( c * RoL - c );
      16  
      17 }</font>

      這里 1π 被分解為光照顏色。

       

      最后我們獲得了占用系統(tǒng)性能極少而又合理的著色模型。高光保存了能量,在入射余角處較為靈敏,并且能同時(shí)與基于解析和圖像的光源一起運(yùn)行。即使是移動(dòng)平臺(tái)的硬件也能夠基于物理來(lái)運(yùn)行了。


      相關(guān)文章
      網(wǎng)友評(píng)論

      您需要登錄后才可以發(fā)帖 登錄 | 立即注冊(cè)

      關(guān)閉

      全部評(píng)論:0條

      推薦
      熱門