激情六月丁香婷婷|亚洲色图AV二区|丝袜AV日韩AV|久草视频在线分类|伊人九九精品视频|国产精品一级电影|久草视频在线99|在线看的av网址|伊人99精品无码|午夜无码视频在线

高校合作1:010-59833514 ?咨詢電話:400-810-1418 服務(wù)與監(jiān)督電話:400-810-1418轉(zhuǎn)接2

解放雙手變魔術(shù),Epic戴浩軍:虛幻引擎如何程序化造山挖樹?

發(fā)布時間:2024-04-09 17:50:45 瀏覽量:210次


11月27日,一年一度的2020虛幻引擎技術(shù)開放日(Unreal Open Day Online)正式召開。此次活動采取線上形式在全球范圍內(nèi)直播,多名來自Epic Games,以及完美世界、祖龍娛樂、心動網(wǎng)絡(luò)、龍淵網(wǎng)絡(luò)的技術(shù)專家進(jìn)行了分享。

其中,Epic Games技術(shù)美術(shù)戴浩軍,以《程序化自然環(huán)境編輯案例解析》為主題,通過介紹虛幻引擎4功能,并結(jié)合案例分析的形式,深入淺出地分析了程序化自然環(huán)境制作的優(yōu)勢、意義以及具體方法。

同時他還對高品質(zhì)美術(shù)項目的性能優(yōu)化提出了自己的見解,鼓勵開發(fā)者借助虛幻引擎工具和功能,針對項目具體需求,建立起一套科學(xué)靈活、可操作性強(qiáng)、結(jié)果可逆的優(yōu)化方案,減少性能問題的束縛,提高項目開發(fā)效率。

以下為分享實(shí)錄:

戴浩軍大家好!我叫戴浩軍,是Epic Games的一名技術(shù)美術(shù),我的日常工作是為廣大的虛幻引擎開發(fā)者提供技術(shù)美術(shù)方向的支持。今天我分享的話題是程序化自然環(huán)境編輯案例解析。

本話題共分為三部分:

  • 程序化自然環(huán)境制作流程的意義和目標(biāo);
  • 虛幻引擎目前內(nèi)置的程序化工具和方法;
  • 通過一個簡單案例解析來展示綜合運(yùn)用引擎工具和特性,進(jìn)行程序化自然環(huán)境制作的思路。

程序化自然環(huán)境制作流程的意義和目標(biāo)

我們在使用虛幻引擎編輯室外自然場景,尤其是大面積場景時,經(jīng)常會遇到美術(shù)效果、運(yùn)行性能、編輯效率、編輯靈活度和溝通成本這五個目標(biāo)之間的矛盾。而程序化自然環(huán)境編輯流程的核心意義,在于對項目的流程梳理和工具開發(fā)、運(yùn)用自動化的方式完成重復(fù)度較高的工作,同時保留足夠的靈活度,來應(yīng)對各種定制化需求,達(dá)到上述五點(diǎn)目標(biāo)之間的平衡。

虛幻引擎目前內(nèi)置的程序化工具和方法

為此,我們需要以下幾個方面的工具和方法:

  • 流程解耦——即將自然環(huán)境編輯工作拆分為整理美術(shù)素材資產(chǎn)、搭建材質(zhì)系統(tǒng)、、制作地形地貌、分布地表植被、構(gòu)建生態(tài)、運(yùn)用光影和后處理、優(yōu)化性能等多個獨(dú)立環(huán)節(jié)。并通過一系列自動化工具進(jìn)行整合。
  • 自動化處理——即通過針對項目需求編寫工具來自動完成各類重復(fù)工作,同時確保美術(shù)效果相關(guān)的數(shù)據(jù)在各環(huán)節(jié)統(tǒng)一可控。并通過直觀的界面封裝相關(guān)信息,將溝通成本降到最低。
  • 非破壞性編輯——即盡可能保留自然環(huán)境編輯的過程,允許場景設(shè)計師較為靈活地修改或還原階段成果,同時也便于在同一個環(huán)節(jié)進(jìn)行多人協(xié)作。
  • 兼容定制化編輯——即在自動化基礎(chǔ)上仍然能夠兼容手動編輯方式,不會因?yàn)樽詣踊鞒潭拗贫ㄖ苹枨蟆?/span>

最終我們希望實(shí)現(xiàn)的是,通過結(jié)合各類工具和方法,形成符合項目需求的自然環(huán)境編輯工作流程,為場景設(shè)計師帶來更好的開發(fā)體驗(yàn)。

下面我們一起來看一下,虛幻引擎在近期提供了哪些內(nèi)置的工具和特性,能夠幫助我們實(shí)現(xiàn)以上目標(biāo)。

首先是Landscape Edit Layers(地形編輯層功能),在4.24版本引入。核心作用是允許我們通過分層方式編輯地形,將基礎(chǔ)地形、人工編輯地形、筆刷地形等編輯工作解耦,能夠把同一個地形不同區(qū)域或不同迭代階段的高度信息、地表材質(zhì)層權(quán)重信息,拆分到不同的編輯層,并可實(shí)時預(yù)覽最終效果。可隨時添加、隱藏、修改、排序或刪除編輯層。

性能方面,該功能僅增加了編輯器中的性能消耗,在運(yùn)行時沒有額外消耗。相對于普通編輯方式,使用地形編輯層既可以使我們靈活地保留地形編輯工作的中間過程,以便快速迭代,同時也便于將大量地形編輯工作拆分后進(jìn)行多人協(xié)作,并重新組合。經(jīng)過合理的流程劃分和組織,可以使地形編輯中不同環(huán)節(jié)或不同崗位之間的工作互不干擾,同時又能隨時預(yù)覽整合后的效果。

然后是Landmass Blueprint Brush(地形筆刷藍(lán)圖功能),同樣在UE4.24版本中引入,包含在Landmass插件中??梢宰屛覀兺ㄟ^帶有樣條線的藍(lán)圖筆刷生成局部地形,并與基礎(chǔ)地形進(jìn)行融合,可分別影響高度圖和權(quán)重圖,便于對局部地形進(jìn)行迭代。

通過在地形上添加筆刷,調(diào)整筆刷的曲線和屬性,可以很方便的得到類似山脈、湖泊、河流等局部自然地形,并且可以隨時修改、隱藏或刪除。即使沒有劃分到獨(dú)立的地形層,也不會破壞原有地形。

此外,我們可以根據(jù)項目需求擴(kuò)展筆刷藍(lán)圖,形成各類具有定制化效果和功能的筆刷工具,方便場景設(shè)計師快速調(diào)用。

然后是Procedural Foliage Tool(程序化植被生成工具)。可以幫助我們按照預(yù)先定義的生態(tài)規(guī)則,在地形上批量生成植被。

在此基礎(chǔ)上,我們可以把整個地形生態(tài)拆分為三部分:

  1. 地表草類植被(Grass Type),根據(jù)分布規(guī)則自動生成或用筆刷手動繪制的生態(tài)植被;
  2. 植被類型(Foliage Type);
  3. 以及與生態(tài)分布規(guī)則緊密相關(guān)的動物自然現(xiàn)象的Actor植被(Actor Foliage),將地形植被工作進(jìn)行解耦。

我們可以在各類植被的植被類型中設(shè)置其生態(tài)分布規(guī)則,例如分布密度、碰撞、陰影、種子間距、種子年齡、互斥優(yōu)先級、限定或排除地表材質(zhì)層等。然后將一組植被類型指定到一個程序化植被生成器中,即可根據(jù)規(guī)則批量生成生態(tài)植被。

同時我們也可以在特定區(qū)域添加Procedural Foliage Blocking Volume程序化植被阻擋體積,來阻止植被在該區(qū)域出生。

下一個是Actor Foilage,這是在虛幻引擎4.23版本中引入的新功能,允許我們使用植被筆刷工具,或者程序化植被生成器來批量生成各類Actor對象。

我們可以將某些與生態(tài)分布密切相關(guān)的環(huán)境元素,例如動物、環(huán)境粒子特效、非靜態(tài)模型演示等,指定到植被類型中。通過程序化植被生成器與靜態(tài)模型植被一起,根據(jù)預(yù)定規(guī)則自動分布。

批量生成的Actor植被具備場景中普通Actor的功能和消耗,我們可以在Actor植被藍(lán)圖中包含各類組件,來實(shí)現(xiàn)定制化的表現(xiàn)。也可以編寫各類功能,來提高自動化程度。同時為了避免大量Actor所帶來的消耗,我們也可以在Actor中編寫自定義的規(guī)則來優(yōu)化性能。

然后是Editor Script Blueprints(編輯器腳本藍(lán)圖)和Python腳本API,允許開發(fā)者使用藍(lán)圖工具或Python腳本編寫功能,來擴(kuò)展虛幻引擎編輯器。通過資產(chǎn)、場景、編輯器設(shè)置等各類API,實(shí)現(xiàn)例如資產(chǎn)批處理,場景對象批處理等定制化功能。方便項目人員自行擴(kuò)展編輯器,而不需要制作插件或修改編輯器代碼。

通過使用編輯器腳本藍(lán)圖,我們可以靈活定制各類編輯器擴(kuò)展功能,引擎將根據(jù)功能類別將函數(shù)名自動添加到,資源管理器或者場景主視口的右鍵菜單中。我們也可以通過Python腳本在調(diào)用Unreal API的同時讀寫外部信息,例如資產(chǎn)信息、項目管理信息等。

然后是Editor Utility Widgets(編輯器工具控件)。和編輯器腳本藍(lán)圖一樣,可以編寫資產(chǎn)和場景對象批處理等腳本功能。并且在此基礎(chǔ)上為我們提供了一套基于UMG的UI方案,我們可以用UMG編輯器,很方便的為我們的腳本工具設(shè)計統(tǒng)一的UI界面,提升項目流程完整性、降低各環(huán)節(jié)溝通成本。

例如,我們可以通過編輯器工具控件,將自然環(huán)境編輯工作中所需眾多選項和數(shù)據(jù),集成到一個統(tǒng)一的界面中。將項目所需流程進(jìn)行拆分,使每個崗位只看到自己所關(guān)心的信息,并可以通過編寫功能自動校驗(yàn)、修復(fù)信息,避免誤操作導(dǎo)致的效果差異,以此確保最終效果在不同環(huán)節(jié)不同基礎(chǔ)的人員之間統(tǒng)一可控。

此外,我們也可以用Python腳本編寫具體功能,在編輯器工具控件中調(diào)用,將腳本功能和UI界面再次解耦。

然后是 Sky Atmosphere (天空大氣)和Sun Positioner(太陽定位器)。天空大氣是UE4.25版本引入的功能,能夠基于物理參數(shù)得到真實(shí)的天空和大氣渲染效果,并且可以方便地預(yù)覽太陽在各方向,甚至是從地面到外太空過渡過程中的天空和大氣效果。

太陽定位器是包含在太陽位置計算器(Sun Position Calculator)插件中的功能,可以幫助我們通過地理經(jīng)緯度、時區(qū)、日期和時間等數(shù)據(jù),來自動計算太陽位置和陽光角度。將兩者結(jié)合,即可通過少量可控的參數(shù),來得到真實(shí)的、基于地理位置和物理參數(shù)的天空和大氣效果,在編輯器和運(yùn)行時均可控制,便于我們在游戲項目中制作,例如動態(tài)日夜變換等效果。

通過這種方式,我們將之前具象化的天空大氣和方向光效果,抽象成地理位置、時間和大氣物理參數(shù)等數(shù)據(jù),大大提升了信息溝通效率,提高了相關(guān)效果的可控度。

然后是UE4.24版本引入的Runtime Virtual Texture(運(yùn)行時虛擬紋理功能),能夠基于GPU動態(tài)創(chuàng)建紋理元素數(shù)據(jù)。通過虛擬紋理資產(chǎn),將場景中的地形或其他Actor的實(shí)時渲染圖像,與其他物體的材質(zhì)進(jìn)行連接,大大提高了制作地面貼花、模型底部與地面融合效果、地面物體與地形材質(zhì)交互效果,等程序化材質(zhì)效果的便利性和運(yùn)行時性能。

例如,通過基于運(yùn)行時虛擬紋理的程序化材質(zhì)制作方式,我們可以更方便地制作靜態(tài)模型與地形材質(zhì)自動融合的效果,而不需要在制作模型材質(zhì)的時候,考慮模型實(shí)際位置的地形紋理。通過虛擬紋理資產(chǎn),實(shí)時將地形材質(zhì)的渲染結(jié)果,以紋理的形式傳遞給所有需要用到的其他材質(zhì)。并且允許場景中的多個對象共同更新同一個虛擬紋理,大大提升了程序化材質(zhì)制作的靈活度。

最后是在UE4.26版本默認(rèn)開啟的Material Layers(材質(zhì)層功能)。該功能允許我們通過材質(zhì)層、材質(zhì)混合等資產(chǎn),搭建更為靈活的分層材質(zhì)體系。相對于基于材質(zhì)函數(shù)的分層材質(zhì)方案,大大提升了靈活度和便利度。

針對具體模型的材質(zhì)實(shí)例,可以不再依賴復(fù)材質(zhì)的內(nèi)部結(jié)構(gòu),而是可以針對每個具體的材質(zhì)實(shí)例,靈活添加材質(zhì)層和材質(zhì)混合,形成較為徹底的組合式的材質(zhì)結(jié)構(gòu)。

由于材質(zhì)層和材質(zhì)混合資產(chǎn)都能夠?qū)嵗纬啥鄬蛹壍牟馁|(zhì)層實(shí)例資產(chǎn)和材質(zhì)混合實(shí)例資產(chǎn),并且其中的參數(shù)可以在各層級資產(chǎn)中調(diào)整并保留,在具體應(yīng)用的材質(zhì)實(shí)例中可以進(jìn)行覆蓋修改,因此可以獲得極高的靈活度。

我們可以把材質(zhì)層和材質(zhì)混合視為能夠多級實(shí)例化,并且能夠在材質(zhì)實(shí)例中靈活組合的材質(zhì)函數(shù).在設(shè)計基于材質(zhì)層的材質(zhì)體系時,我們可以根據(jù)項目需求將最基礎(chǔ)的材質(zhì)元素進(jìn)行拆分、提煉,并形成統(tǒng)一數(shù)據(jù)。例如具體到某一種物質(zhì)的基礎(chǔ)色、粗糙度、金屬度、細(xì)節(jié)法線貼圖和平鋪(Tiling)值等基本屬性和效果,并通過具體模型對應(yīng)該物質(zhì)的遮罩(Mask)進(jìn)行混合。

通過這種方式,既可以保證整個項目中某一種物質(zhì)的基本屬性和效果統(tǒng)一可控,同時也可以通過各種小尺寸貼圖重復(fù)平鋪(Tiling)后,通過表面混合來表現(xiàn)材質(zhì)細(xì)節(jié),避免為了細(xì)節(jié)表現(xiàn)而使用大量大尺寸貼圖,減少了編輯、運(yùn)行時的貼圖內(nèi)存占用,和整個項目的貼圖資源總量,真正形成一套程序化的分層材質(zhì)體系。

案例解析展示程序化自然環(huán)境制作的思路

那么我們?nèi)绾纬浞职l(fā)揮上述引擎提供的程序化功能所帶來的優(yōu)勢,來建立符合項目需求的制作流程?該流程又能為自然環(huán)境場景編輯帶來哪些幫助?

下面我們用一個簡單的案例,來快速展示一下上述引擎工具和特性,為程序化制作自然環(huán)境帶來了哪些流程上的改變?希望能給大家?guī)硪恍﹩l(fā)。

本案例基于UE4.25.4啟動器(Launcher)版本純藍(lán)圖工程,考慮性能分級,其中使用到的絕大部分素材來自于Quixel Megascans 3D掃描素材庫,在場景設(shè)計師開始介入地形編輯工作之前,我們需要先做一些準(zhǔn)備工作。

首先,我們用Epic的賬號登錄Megascans Bridge軟件,免費(fèi)下載項目所需地表紋理、3D模型、3D植被跟素材,并通過Megascans UE4 插件快速導(dǎo)入,插件會根據(jù)材質(zhì)模板幫我們自動生成每個模型的材質(zhì)實(shí)例,并指定給模型資產(chǎn)。由于項目需求不同,我們往往需要定制一些資產(chǎn)處理方面的策略,來解決例如資產(chǎn)優(yōu)化設(shè)置、表現(xiàn)統(tǒng)一、風(fēng)格化處理相關(guān)的問題。

憑借引擎的編輯器腳本和Python API,我們可以很方便的組織策略,編寫資產(chǎn)批處理工具,讀取針對項目需求設(shè)計的參數(shù)預(yù)設(shè),方便設(shè)計師批量優(yōu)化和處理資產(chǎn)。然后我們可以針對項目需要建立材質(zhì)框架,通過材質(zhì)層資產(chǎn),抽象出各種物質(zhì)的基本材質(zhì)屬性;通過材質(zhì)混合資產(chǎn),定義各材質(zhì)層的混合方式,并建立基礎(chǔ)材質(zhì)。然后針對各類模型資產(chǎn)建立材質(zhì)實(shí)例模板,創(chuàng)建子材質(zhì)實(shí)例,并指定給模型資產(chǎn)。

通過這種程序化材質(zhì)組織方式,能夠?yàn)楹罄m(xù)可能的材質(zhì)效果迭代帶來很大的便利性。

接下來添加虛擬紋理相關(guān)資產(chǎn).例如運(yùn)行時虛擬紋理資產(chǎn)、運(yùn)行時虛擬紋理體積,并為有需要的材質(zhì)添加虛擬紋理輸出材質(zhì)節(jié)點(diǎn)、虛擬紋理采樣材質(zhì)節(jié)點(diǎn)等,并為需要輸出到虛擬紋理的Actor對象指定虛紋理資產(chǎn)的引用。

建立光照模板關(guān)卡、添加并設(shè)置天空大氣、太陽定位器以及其他燈光后處理體積等。在關(guān)注燈光效果的同時,我們也需要根據(jù)項目需求設(shè)置光照相關(guān)性能分級預(yù)設(shè),供場景美術(shù)預(yù)覽整體效果使用。

使用編輯器腳本調(diào)用太陽定位器相關(guān)參數(shù),并通過編輯器工具控件直觀地呈現(xiàn)在引擎編輯器界面上。

建立項目所需要的地形材質(zhì)、地形草、植被類型和Foliage Type植被類型資產(chǎn)。根據(jù)項目性能分級要求設(shè)置密度,剔除距離等參數(shù)。并根據(jù)植被特點(diǎn)設(shè)置分布式的隨機(jī)旋轉(zhuǎn)、海拔高度區(qū)間、可出生坡度、限定地表層或排除地表層,碰撞范圍、陰影范圍、播種、生長、等相關(guān)參數(shù),然后將上述資產(chǎn)分別指定到地形材質(zhì)和程序化植被生成器中。

同時在很多項目的自然環(huán)境編輯過程中,場景設(shè)計師在享受程序化編輯流程帶來的便利的同時,也不希望美術(shù)設(shè)計自由度受到自動化流程的限制。比如很多時候,場景設(shè)計師需要對場景的特定區(qū)域植被進(jìn)行人工編輯,并且希望編輯后的結(jié)果能夠得以保留,而不會在進(jìn)行程序化生成植被迭代工作時被覆蓋。

為了方便場景設(shè)計師達(dá)成上述目標(biāo),我們可以使用相關(guān)編輯器腳本API編寫一些輔助功能。例如提取植被系統(tǒng)中特定區(qū)域內(nèi)的實(shí)例(Instance)為獨(dú)立的Actor,方便定制化編輯。在人工編輯迭代完成后,將這些Actor批量合并回植被系統(tǒng),以確保運(yùn)行時的性能。

為了方便場景設(shè)計師預(yù)覽不同性能配置下的場景效果,并感知性能風(fēng)險,我們還可以將引擎的“Engine Scalability”分級功能,以及我們自定義的性能設(shè)置規(guī)則。通過編輯器腳本、編寫到編輯器工具控件界面中,方便場景設(shè)計師隨時選擇配置,并預(yù)覽相應(yīng)效果。

最終,在場景設(shè)計師拿到項目開始自然環(huán)境編輯工作時,只需要將預(yù)設(shè)好的燈光模板關(guān)卡添加到主關(guān)卡,并使用預(yù)設(shè)的地形材質(zhì)配合地形高度圖、權(quán)重圖來快速生成地形。通過添加編輯層,以非破壞的方式修改地形,使用地形筆刷藍(lán)圖創(chuàng)建遠(yuǎn)景、山脈、湖泊、河流等地形,并可隨時修改或刪除。

使用程序化植被生成器生成植被和生態(tài),并且使用腳本工具,劃分出人工編輯區(qū)域進(jìn)行精編,可隨時預(yù)覽不同地理位置、不同時間的光照和大氣變化,同時也能預(yù)覽性能分級下的整體效果。

由于整個場景制作工作已被解耦為不同的流程環(huán)節(jié),因此對設(shè)計師的操作順序兼容性很強(qiáng)。只要遵循既定規(guī)則,大部分操作均可逆,便于快速迭代。

最后,我們再強(qiáng)調(diào)一下程序化自然環(huán)境制作過程中的性能分級問題。在我們用虛幻引擎制作畫面要求較高、美術(shù)資源量較大的項目時,性能優(yōu)化是首要考慮的因素。同樣,在使用程序化方式制作自然環(huán)境,尤其是大面積自然環(huán)境時,性能問題會變得更加敏感。

而自然環(huán)境場景的性能優(yōu)化是一個比較復(fù)雜的課題,牽涉到的方面很多,沒有一套萬能規(guī)則,還是需要廣大開發(fā)者根據(jù)項目需求進(jìn)行具體規(guī)劃。

通常,我們難以讓整個項目的每一位參與者對性能優(yōu)化問題了如指掌,因此在項目規(guī)劃期建立一套科學(xué)靈活、可操作性強(qiáng)、結(jié)果可逆的優(yōu)化方案,成為便于場景設(shè)計師在設(shè)計工作中從容應(yīng)對性能問題的關(guān)鍵。

如果我們能夠針對具體項目需求,通過壓力測試、數(shù)據(jù)分析,分別對資產(chǎn)、材質(zhì)、生態(tài)、光影形成整套優(yōu)化方案,并固化到腳本工具中,將會大大減少性能問題對程序化自然環(huán)境編輯帶來的阻礙,提高項目開發(fā)效率。

虛幻引擎自帶的“Scalability”分級系統(tǒng)中,包含了對大量通用性能指標(biāo)的控制,例如分辨率、比例、可視距離、抗鋸齒精度、后處理質(zhì)量、陰影精度、貼圖渲染精度、粒子特效精度、細(xì)節(jié)模式、材質(zhì)質(zhì)量級別、模型LOD偏差、植被密度分級等。

我們可以通過改變系統(tǒng)分級,來統(tǒng)一切換上述設(shè)置,也可以自定義具體的設(shè)置規(guī)則,另外還有一些自然環(huán)境編輯中比較敏感的性能數(shù)據(jù)。例如植被剔除距離、根據(jù)對象重要性設(shè)置的剔除規(guī)則、消耗較高的對象動態(tài)出生距離和剔除距離等,則需要我們自定義一套項目專用的分級規(guī)則,并與Scalability分級系統(tǒng)相結(jié)合,通過腳本工具控件設(shè)計成視覺統(tǒng)一的UI界面方便場景設(shè)計師用直觀的方式預(yù)覽不同性能配置下的效果,既可以提升編輯流暢度,又可以幫助設(shè)計師在特定性能要求下直觀地進(jìn)行設(shè)計決策。

綜上,希望能通過本話題為各位開發(fā)者提供一點(diǎn)思路上的參考。具體還需要大家根據(jù)項目實(shí)際需求,發(fā)揮想象力和創(chuàng)造力,綜合運(yùn)用循環(huán)引擎內(nèi)置的強(qiáng)大功能和方法,為項目帶來理想中的平衡點(diǎn)。

我的分享就到這里,謝謝大家!

熱門課程推薦

熱門資訊

請綁定手機(jī)號

x

同學(xué)您好!

您已成功報名0元試學(xué)活動,老師會在第一時間與您取得聯(lián)系,請保持電話暢通!
確定