熱門
使用Unity HDRP創(chuàng)建逼真的體積云
近幾十年來,,flat-painted skyboxes和HDRIs一直是天空和云渲染的首選解決方案。而現(xiàn)在,,通過HDRP全新的體積云,,你可以用動(dòng)態(tài)云填充你的世界。對(duì)于系統(tǒng)的第一次迭代,,Unity關(guān)注的更多是性能和易用性,,因此你只需點(diǎn)擊幾下鼠標(biāo),就能以較低的圖形處理器成本創(chuàng)建出漂亮的視覺效果,。
云渲染的簡(jiǎn)史
直到上一代游戲機(jī)淘汰之前,,體積云技術(shù)在游戲中應(yīng)用的情況一直是非常罕見的。立體的云,,即占據(jù)世界中物理空間的云,,通常僅限于飛行模擬器和少數(shù)開放世界的游戲。
造成這種情況的主要原因是渲染這種云的成本非常高,。具體來說,,當(dāng)依賴于光線跟蹤或光線行進(jìn)時(shí),計(jì)算穿過云的光散射是一項(xiàng)費(fèi)時(shí)費(fèi)力的工作,。而另一個(gè)原因則是,,大多數(shù)3D游戲只需在地面(例如,,地形或海洋)上進(jìn)行,因此它們不需要?jiǎng)討B(tài)天空系統(tǒng)或是飛行在云端上方的相機(jī)來推動(dòng)游戲的進(jìn)度,。
因此,,許多3D應(yīng)用程序就選擇使用靜態(tài)紋理來塑造云朵,如立方體貼圖或簡(jiǎn)單的透明材料作為替換,。通常,,這些場(chǎng)景都是在離相機(jī)無限遠(yuǎn)的地方進(jìn)行渲染,因此云朵不會(huì)與地面世界完全相連接,,這樣做的的優(yōu)點(diǎn)是可以以非常低的成本為靜態(tài)場(chǎng)景提供足夠的質(zhì)量,。
隨著實(shí)時(shí)3D渲染的進(jìn)步和硬件性能的提高,一個(gè)新的動(dòng)態(tài)體積云的時(shí)代開始了,。這打開了全新視覺體驗(yàn)的大門,,這一切都可以通過Unity的高清渲染管道(HDRP)實(shí)現(xiàn)。
體積云受Volume Framework’s global wind影響可投下真實(shí)的陰影,。它們與Volumetric Fog和Physically Based Sky一起創(chuàng)造出令人印象深刻的體積太陽軸和令人瞠目結(jié)舌的日落效果,。
而天空反射和環(huán)境探測(cè),以及局部反射探測(cè)和平面反射,,可以渲染云,。這一過程組成了Unity全新的體積云系統(tǒng),該系統(tǒng)可以與大多數(shù)其他HDRP系統(tǒng)無縫交互,。經(jīng)測(cè)試該系統(tǒng)在PlayStation 4(非PS4 Pro)上的延遲約為2ms,,在最近的出廠的高端GPU上的延遲遠(yuǎn)低于0.5ms。
易于設(shè)置
在Unity中創(chuàng)建體積云只需要簡(jiǎn)單的幾步即可完成,。第一,,確保啟用HDRP資產(chǎn)和HDRP Global Settings,以啟用“體積云”,。
這只是一個(gè)使用材積平分法來控制體積云的方式,。如大多數(shù)HDRP效果一樣,只需選擇現(xiàn)有的(全局)卷或創(chuàng)建一個(gè)新的卷,,并將其分配到一個(gè)體積云組件中然后再添加到其配置文件中即可實(shí)現(xiàn),。其中有許多參數(shù)可以控制云的類型、風(fēng),、光,、陰影以及云的整體質(zhì)量和成本。
借助簡(jiǎn)單模式下的四種內(nèi)置預(yù)設(shè),,用戶可以立即創(chuàng)建多種類型的云場(chǎng)景如:少云,,多云,陰雨和暴風(fēng)雨天氣,。對(duì)于這四種天氣類型的調(diào)整,,可以最大限度地提高云層下,、內(nèi)部和略高于云層部分的細(xì)節(jié)水平,最高可達(dá)10,,000米(33,,000英尺)。
本地云模式會(huì)影響飛入和飛過云的能力,,同時(shí)也會(huì)間接影響性能水平,。
當(dāng)本地云模式被禁用,被渲染的云會(huì)離相機(jī)非常遠(yuǎn),。這使用戶可以將相機(jī)遠(yuǎn)平面保持在非常合理的距離,。但很顯然這種模式會(huì)讓相機(jī)遠(yuǎn)離云層。
當(dāng)本地云模式被啟用,,相機(jī)可以在云層下方、內(nèi)部和上方進(jìn)行導(dǎo)航,。但是,,為了與地平線有足夠高的視距,可能需要將相機(jī)遠(yuǎn)平面增加到100,,000米以上,,這具體取決于體積霧的密度。
出于這個(gè)原因,,如果項(xiàng)目不需要攝像機(jī)飛入云層并一直保持在云層之上,,請(qǐng)將本地云模式禁用。這時(shí)你仍將獲得相同的照明和陰影質(zhì)量,,同時(shí)能夠保持較低的相機(jī)遠(yuǎn)平面距離,。
如果你需要相機(jī)飛上云端,則可以啟用本地云模式,。至于基于物理的天空,,體積云系統(tǒng)模擬了地球的曲率,因此云頂包裹著地球,,并在地平線上提供了與陸地或海洋的真實(shí)連接,。如果進(jìn)一步彎曲云穹,你可以迫使它與世界相交匯,,這意味著你可以大幅降低相機(jī)的遠(yuǎn)平面距離,。
另外在場(chǎng)景中風(fēng)受到了特別的關(guān)注,風(fēng)再現(xiàn)了現(xiàn)實(shí)世界中常見的浮力現(xiàn)象,。在Unity中對(duì)風(fēng)有四種控制,。例如,用戶可以創(chuàng)建靜態(tài)云,,但通過侵蝕風(fēng),,或者可以通過造型風(fēng)我們可以創(chuàng)造出迷人的遠(yuǎn)景,。
除了簡(jiǎn)單的模式下提供的四種預(yù)設(shè)之外,用戶還可以使用自定義預(yù)置,,該功能允許用戶使用曲線和滑塊控制大多數(shù)云的屬性,。這種模式非常強(qiáng)大,可以在幾秒鐘內(nèi)用多層云創(chuàng)建各種各樣的云景,。
要?jiǎng)?chuàng)建太陽軸,,只需切換體積霧屬性并設(shè)置其最大高度和體積霧距離到幾千米。這樣,,定向光就可以影響大氣層,,并在云層下產(chǎn)生美麗的陽光散射。
最后是手動(dòng)模式,,該模式支持專業(yè)用戶創(chuàng)建云覆蓋紋理和查找表(LUT),,以便手動(dòng)控制LUT定義的每個(gè)垂直云切片的位置。
渲染技術(shù)
云體積由2D覆蓋貼圖和LUT設(shè)定的不同高度剖面所驅(qū)動(dòng),,該剖面指定了密度,、侵蝕和環(huán)境遮擋等屬性。使用兩個(gè)3D噪聲紋理來吞噬云體積,,以生成不同的云形狀:
形狀噪聲:生成大片云形狀的低頻噪聲
侵蝕噪聲:提供云層表面微觀細(xì)節(jié)的高頻噪聲
在渲染時(shí),,HDRP的體積云系統(tǒng)使用光線行進(jìn),這是一種依賴于從相機(jī)向物體和光源分步投射光線的技術(shù),。在案例中,,向云體投射初級(jí)光線來對(duì)云表面進(jìn)行采樣。然后,,次級(jí)光線被投射到太陽上,,以遮擋云層表面的像素。
為了進(jìn)一步降低成本,,同時(shí)將視覺降格降至最低,,該過程以四分之一分辨率進(jìn)行,并進(jìn)行時(shí)間重投影和累積,。這意味著云系統(tǒng)使用來自先前幀的樣本來構(gòu)建完整的結(jié)果,。因此,當(dāng)相機(jī)高速移動(dòng)時(shí),,在必須渲染沒有任何歷史記錄的云的部分時(shí),,可能會(huì)出現(xiàn)一些重影或重建鬼影。盡管如此,,Unity仍然提供了一個(gè)非常有效的抗重影解決方案,,該解決方案支持快速的相機(jī)移動(dòng)和高風(fēng)速場(chǎng)景。
需要特別注意的是薄的幾何形狀,,如樹葉等,,不會(huì)產(chǎn)生任何明顯的偽像,,因?yàn)橄噜徳频南袼赝ǔ:茈y分辨。
一天中,,諸如日出和日落的這些時(shí)間對(duì)于塑造云來說是一個(gè)特殊的挑戰(zhàn),,因?yàn)榫坝^和天空之間的曝光差異很大,地球的曲率及其產(chǎn)生的陰影,;太陽低垂場(chǎng)景中光散射的復(fù)雜性,,以及光線傳播的長(zhǎng)距離對(duì)云的渲染都是挑戰(zhàn)。
當(dāng)前的限制和未來的改進(jìn)
像任何系統(tǒng)一樣,,體積云系統(tǒng)需要在一定范圍內(nèi)表現(xiàn)最佳,。目前,Unity針對(duì)攝像機(jī)位于云卷下方,、內(nèi)部和略高于云卷的情況進(jìn)行了高度優(yōu)化,。因此,12公里(40,,000英尺)以上的空間和位于極高海拔的場(chǎng)景并不特別適合當(dāng)前的體積云系統(tǒng),,因?yàn)榍治g貼面可能會(huì)變得非常假,如下圖所示,。
此外,Unity目前僅支持一個(gè)云卷,。這意味著存在于所述體積中的所有云形狀共享相同的噪聲,、風(fēng)向和照明屬性。未來,,Unity將考慮支持多個(gè)云卷,,以便對(duì)用戶希望創(chuàng)建和制作動(dòng)畫的每一層云提供更精細(xì)的控制。
此外Unity還將增加對(duì)準(zhǔn)點(diǎn)燈光和向云投射陰影對(duì)象的支持,。這對(duì)在太空中或飛行模擬器中模擬帶有閃光燈的飛船照射周圍的云朵時(shí)非常有效,。同時(shí),局部體積霧也可以在某些靜態(tài)場(chǎng)景中使用,。
在視覺質(zhì)量方面,,Unity將考慮支持兩個(gè)以上級(jí)別的噪聲控制,為高級(jí)平臺(tái),、交互式幀率和離線應(yīng)用程序提供更高的畫面質(zhì)量,。
電話:010-50951355 傳真:010-50951352 郵箱:[email protected] ;點(diǎn)擊查看區(qū)域負(fù)責(zé)人電話
手機(jī):13811546370 / 13720091697 / 13720096040 / 13811548270 /
13811981522 / 18600440988 /13810279720 /13581546145