五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

如何用 UE 高效生成細(xì)節(jié)豐富的《重生邊緣》野外場(chǎng)景(下)

2022-03-04 14:26 作者:NExTStudios  | 我要投稿

上篇文章中,我們從地形、崖壁、植被、河流、道路五個(gè)方面介紹了NExT Studios 在使用虛幻引擎4開(kāi)發(fā)《重生邊緣》的過(guò)程中,過(guò)程化內(nèi)容生成的一些嘗試。


本篇將針對(duì)工具加入場(chǎng)景制作后,如何解決新的工具在實(shí)際工作中遇到的各種問(wèn)題,以及分享一些試驗(yàn)性工作。



直達(dá)現(xiàn)場(chǎng)


? 視頻來(lái)自Unreal Open Day2021虛幻引擎技術(shù)開(kāi)放日現(xiàn)場(chǎng)演講:《重生邊緣》中的過(guò)程化內(nèi)容生成


00:32 過(guò)程化內(nèi)容生成中容易遇到哪些流程問(wèn)題?

比如生成的效果達(dá)不到美術(shù)的要求;工具的使用門(mén)檻太高,他們不想用;工具不夠穩(wěn)定,他們覺(jué)得折騰的成本太高;或者涉及多人協(xié)作的問(wèn)題,這個(gè)事情到底是程序員做、TA做、還是關(guān)卡美術(shù)做?多個(gè)關(guān)卡美術(shù)的協(xié)作需求如何解決?等等。只有解決了這些問(wèn)題才算是一個(gè)合格可用的工具鏈。

基于前面的分享,相信大家也能看出,我們的目的是:并不追求全地圖自動(dòng)化生成,而是根據(jù)需求做一些定制,提高制作效率。

過(guò)程化內(nèi)容生成管線

01:44 自動(dòng)生成內(nèi)容和人工編輯內(nèi)容之間的沖突問(wèn)題如何解決?生成內(nèi)容之間的關(guān)卡切分問(wèn)題如何考慮?不同子關(guān)卡的生成限制如何保證結(jié)果的穩(wěn)定性?

我們總結(jié)出來(lái)兩個(gè)原則,第一是生成的內(nèi)容不能覆蓋人工編輯的內(nèi)容。第二是各個(gè)子關(guān)卡之間盡量地獨(dú)立地編輯和生成。就像 Unreal 大世界里的地圖,通常會(huì)編輯成多個(gè)子關(guān)卡,方便多個(gè)美術(shù)協(xié)作,然而對(duì)于過(guò)程化生成的內(nèi)容,也需要去做這樣的支持。比如可以對(duì)world composite做一個(gè)支持,支持地形自動(dòng)切分到子關(guān)卡。

自動(dòng)切分到子關(guān)卡

關(guān)于生成的內(nèi)容(大量貼花、崖壁、河流等)之間,也都需要切到子關(guān)卡。只有切分了子關(guān)卡,才能做獨(dú)立地剔除和 level streaming,同時(shí)也能支持不同的人來(lái)編輯和生成不同的子關(guān)卡。

對(duì)于不同的子關(guān)卡,我們生成的限制是需要保證結(jié)果的穩(wěn)定性:不管是多塊一起計(jì)算出來(lái)的結(jié)果,還是單塊單獨(dú)計(jì)算出來(lái)的結(jié)果,應(yīng)該是一致的。這樣才能夠保證按照子關(guān)卡的方式去工作。


03:30 地形和建筑的穩(wěn)定性如何解決?

對(duì)于地形來(lái)說(shuō),我們沒(méi)辦法很好地解決。因?yàn)殛P(guān)卡與關(guān)卡之間會(huì)有一道必然的交界,如果只更新了其中的一塊,另外一塊就接不上了。

雖然可以對(duì)整個(gè)地形做整體的侵蝕或美化,做一次全量更新,但這對(duì)于整個(gè)開(kāi)發(fā)來(lái)說(shuō)是非常不友好的行為,因?yàn)樾枰獏f(xié)調(diào)所有人,把所有的關(guān)卡文件都解鎖。我覺(jué)得更實(shí)用的做法是做局部的更新,比如只更新刷過(guò)mask的區(qū)域。


局部更新mask

對(duì)于有些建筑區(qū)域,比如某處建了一棟房子,要求地基是平的,我們不想在生成地形的時(shí)候改變地表,很可能房子就懸空了。我們可以使用volume把區(qū)域框起來(lái),跳過(guò)這個(gè)區(qū)域的侵蝕生成。

volume排除侵蝕區(qū)域

04:42 跟美術(shù)編輯的沖突問(wèn)題如何解決?

有時(shí)候過(guò)程化生成的內(nèi)容跟美術(shù)編輯的內(nèi)容在同一個(gè)數(shù)據(jù)集里面,就會(huì)產(chǎn)生沖突問(wèn)題。到底用誰(shuí)的呢?Unreal提供了Edit Layer的功能,它跟Photoshop的圖層一樣,可以把生成的單獨(dú)放一層,人工編輯的單獨(dú)放一層,甚至還可以開(kāi)更多的層,這樣就可以混合人工編輯和我們生成的數(shù)據(jù),得到想要的效果。但有的時(shí)候可能并不想要混合效果,而想要替換效果(比如說(shuō)河流河道可以替換掉原有的地形)。我們又開(kāi)發(fā)了一個(gè)Edit Layer的覆蓋混合模式,用來(lái)支持這樣的需求,同時(shí)也擴(kuò)展了Unreal權(quán)重繪制的工具,用來(lái)繪制mask,支持這種覆蓋混合和很多層的表現(xiàn)。

Edit Layer覆蓋混合模式

還有一種沖突比較常見(jiàn),比如說(shuō)美術(shù)在某處放棵樹(shù),只是用來(lái)做裝飾的,但是我們生成植被的時(shí)候很可能就把這棵樹(shù)給生成沒(méi)了,那這不是他們想看到的。所以我們針對(duì)生成的樹(shù)都會(huì)打標(biāo)記,每個(gè)instance上都會(huì)有一個(gè)特殊的屬性,這樣就能夠區(qū)分出來(lái)到底哪些樹(shù)是我們生成的,哪些樹(shù)是美術(shù)編輯的。再重新生成的時(shí)候,就可以把原來(lái)生成的樹(shù)全部刪掉,做一次全量更新,但美術(shù)擺的樹(shù)并不會(huì)被刪掉,而且也可以選擇避開(kāi)他們。

很容易樹(shù)沒(méi)了

06:23 數(shù)據(jù)導(dǎo)入導(dǎo)出的問(wèn)題如何處理?

我們沿用了Unreal Landscape Spline曲線生成,這些數(shù)據(jù)需要導(dǎo)出到Houdini當(dāng)中進(jìn)行運(yùn)算,其實(shí)這也是為編輯的操作習(xí)慣而做的妥協(xié),也避免了再開(kāi)發(fā)全新的一套曲線編輯工具。

我們把Unreal Landscape Spline重新做了算法量化,導(dǎo)出成一個(gè) JSON,然后在Houdini當(dāng)中提取這些關(guān)鍵點(diǎn)做重建,這樣就可以基于這條曲線去做算法實(shí)現(xiàn)。我們也加了各種各樣的自定義屬性,比如說(shuō)曲線的類(lèi)型,因?yàn)樗鼤?huì)有不同的內(nèi)容(路、護(hù)欄、河等),他們是屬于不同曲線的。曲線的寬度還有優(yōu)先級(jí)也都是通過(guò)這種方式添加到 JSON 文件里。

針對(duì)生成的內(nèi)容。我們也做了一個(gè)簡(jiǎn)單的熱力圖掃描工具,可以選擇任意一個(gè)Unreal當(dāng)中的某個(gè)stat,比如針對(duì)面數(shù)去做統(tǒng)計(jì),生成可視化的表現(xiàn),方便美術(shù)在生成完或者關(guān)卡編輯完后去做性能自查。

熱力圖性能分析面板

08:05 一些試驗(yàn)性的探索


如果只是針對(duì)之前提的那幾個(gè)功能的話,可能整個(gè)工作流是大同小異的,但是每個(gè)項(xiàng)目其實(shí)需求都不一樣。比如說(shuō)有的項(xiàng)目完全不用Houdini,生成算法全在Unreal里程序員自己實(shí)現(xiàn)。還有的項(xiàng)目可能因?yàn)椴幌矚g數(shù)據(jù)互相導(dǎo)來(lái)導(dǎo)去,選擇整個(gè)的關(guān)卡布局是在Houdini當(dāng)中進(jìn)行制作,然后再導(dǎo)入U(xiǎn)nreal,這個(gè)時(shí)候就不能改了。還有的像我們一樣,頻繁導(dǎo)入導(dǎo)出,需要很多數(shù)據(jù)交換,那我們需要程序員不斷地處理這些特殊的需求。


所以我們?cè)诎堰@種工具推廣到不同項(xiàng)目的時(shí)候,就需要重構(gòu)整個(gè)管線。我們支持了藍(lán)圖節(jié)點(diǎn)編輯,讓原來(lái)Houdini的HDA文件生成一個(gè)藍(lán)圖的異步節(jié)點(diǎn),其所需要的數(shù)據(jù)準(zhǔn)備是通過(guò)藍(lán)圖來(lái)進(jìn)行的(包括數(shù)據(jù)輸出的后處理),這樣就具備了非常高的靈活性,能滿足很多奇奇怪怪的需求。

可定制的生成流程

我們生成完,可以給它打個(gè) tag 或者設(shè)置一些類(lèi)似 virtual texture的屬性,然后生成一個(gè)actor,甚至改變它的材質(zhì)。在這套機(jī)制下,解放了程序員的生產(chǎn)力,不用他們專(zhuān)門(mén)開(kāi)發(fā)特性。因?yàn)橛械臅r(shí)候我發(fā)現(xiàn)不是這些功能實(shí)現(xiàn)不了,而是美術(shù)等不了,或者用戶等不了,反復(fù)折騰的時(shí)候他們就不想用了。


另外,我們把數(shù)據(jù)的輸入輸出做了抽象,比如抽象成圖,或者曲線,或是一些點(diǎn),然后把這些數(shù)據(jù)做了抽象之后,甚至可以通過(guò)網(wǎng)絡(luò)來(lái)傳輸這些數(shù)據(jù),把生成的服務(wù)放到一臺(tái)更強(qiáng)健的GPU工作站上。而且把數(shù)據(jù)做完抽象之后,也不限于只用Houdini來(lái)做,可以搭建一些自己的服務(wù),用 Maya或Blender也都可以,因?yàn)閿?shù)據(jù)的交換變得非常簡(jiǎn)單。


生成服務(wù)器

我們也做了些機(jī)器學(xué)習(xí)的一些嘗試,比如說(shuō)基于GAN算法的現(xiàn)實(shí)世界生成,或者是地表地形的風(fēng)格化遷移等。還有一個(gè)很常見(jiàn)的問(wèn)題是在用Houdini做這些工作的時(shí)候,數(shù)據(jù)的導(dǎo)入導(dǎo)出和計(jì)算都需要非常長(zhǎng)的等待,有些團(tuán)隊(duì)會(huì)傾向于在引擎中自己實(shí)現(xiàn)生成算法,我們?cè)谶@方面也做了一些簡(jiǎn)單的嘗試,參考了《地平線:零之曙光》(Horizon Zero Dawn)的做法,使用GPU加速的方式做地表地形的生成和植被的分布


過(guò)程化內(nèi)容生成的技術(shù)除了應(yīng)用在游戲開(kāi)發(fā)中,還有其他應(yīng)用場(chǎng)景。例如NExT跟新華社合作的數(shù)字航天員小諍的火星視頻中,我們使用了過(guò)程化內(nèi)容生成的技術(shù)模擬火星的地貌。UE5的Nanite可以在不限制三角形數(shù)量的情況下做大量的幾何細(xì)節(jié),這應(yīng)該也是后續(xù)游戲制作的趨勢(shì)之一。

小諍在火星

如何用 UE 高效生成細(xì)節(jié)豐富的《重生邊緣》野外場(chǎng)景(下)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
集安市| 桦南县| 德化县| 涟源市| 讷河市| 承德县| 乐至县| 柳林县| 邻水| 正宁县| 大连市| 文山县| 赫章县| 门头沟区| 塔河县| 乐安县| 漳浦县| 临高县| 象山县| 景德镇市| 双牌县| 黎川县| 长海县| 吴忠市| 阆中市| 新巴尔虎左旗| 当阳市| 平安县| 孟州市| 类乌齐县| 扬州市| 德昌县| 吴桥县| 新昌县| 汤原县| 柘城县| 马关县| 措美县| 新沂市| 阳朔县| 壶关县|