今年,Imagination技術(shù)團(tuán)隊(duì)參加了在舊金山舉辦的游戲開發(fā)者大會(huì)(GDC),期間展示了與亞馬遜網(wǎng)絡(luò)服務(wù)(AWS)合作創(chuàng)建的光線追蹤demo。
在本文中,我們將重點(diǎn)介紹開創(chuàng)性的移動(dòng)光線追蹤的實(shí)現(xiàn),這是與亞馬遜網(wǎng)絡(luò)服務(wù)(AWS)合作完成。亞馬遜網(wǎng)絡(luò)服務(wù)(AWS)是開源實(shí)時(shí)3D引擎(O3DE)的主要?jiǎng)?chuàng)建者,該引擎可支持使用光線追蹤實(shí)現(xiàn)實(shí)時(shí)動(dòng)態(tài)計(jì)算全局照明。
光線追蹤的強(qiáng)大功能
光線追蹤是一項(xiàng)強(qiáng)大的技術(shù),允許開發(fā)人員通過計(jì)算光線在3D 引擎渲染器內(nèi)的反彈情況來(lái)增強(qiáng)游戲動(dòng)畫,或任何實(shí)時(shí)計(jì)算生成的圖像。挑戰(zhàn)在于它是計(jì)算密集型的,這就是為什么 Imagination 的IMG CXTGPU IP中的 PowerVR Photon 架構(gòu)在幫助實(shí)現(xiàn)使此類實(shí)時(shí)計(jì)算所需的功率和帶寬效率方面如此關(guān)鍵。IMG CXT 代表了五級(jí)光線追蹤級(jí)別系統(tǒng)的第一個(gè)4 級(jí)解決方案。
光線追蹤級(jí)別系統(tǒng)
光線追蹤模擬了光線在現(xiàn)實(shí)世界中的工作方式,光子從光源發(fā)出并在場(chǎng)景中反彈,直到到達(dá)觀察者的眼睛。光線追蹤可以在3D 渲染中以多種方式使用,以生成燈光和陰影,使 3D 場(chǎng)景看起來(lái)更逼真。雖然游戲中的光線追蹤通常用于創(chuàng)建逼真的反射,但如果它用于全局照明 (GI),它可以真正模擬3D 場(chǎng)景在現(xiàn)實(shí)世界中的表現(xiàn)。
基于另一種(基于探針的)計(jì)算和使用場(chǎng)景內(nèi)的二次光反彈方法,全局照明告訴渲染器場(chǎng)景環(huán)境的哪些部分更暗、更亮,以及燈光如何在附近對(duì)象之間擴(kuò)散(強(qiáng)度和顏色)。為了更好地了解反射和GI 的視覺影響,請(qǐng)查看我們?yōu)閱?dòng) IMG CXT GPU 而創(chuàng)建的光線追蹤演示,它們帶來(lái)的差異非常明顯。它演示了GI 如何比僅使用反射更有效地創(chuàng)建真實(shí)感。
我們于 2021 年 7 月開始著手 O3DE演示,在 O3DECon大會(huì)(開源3D基金會(huì)的官方大會(huì))展示結(jié)束后,我們與開發(fā)人員取得了聯(lián)系。O3DE 是 AmazonLumberyard 的演進(jìn),捐贈(zèng)給 了Linux 基金會(huì),并由合作伙伴委員會(huì)和公眾組成的委員會(huì)開發(fā)和維護(hù)。我們花了第一個(gè)月的時(shí)間從長(zhǎng)遠(yuǎn)角度評(píng)估引擎的性能,找出它可以為我們的演示團(tuán)隊(duì)提供哪些可能性。
我們發(fā)現(xiàn)該引擎可以使用光線追蹤來(lái)實(shí)時(shí)動(dòng)態(tài)計(jì)算GI,因此我們決定將其用作即將到來(lái)的演示的主要功能。從那里開始,與 AWS 開發(fā)人員的展開了緊密合作,我們互相幫助;我們測(cè)試了引擎,并向開發(fā)人員提供了持續(xù)的反饋,基于這些反饋,他們實(shí)現(xiàn)了一些缺失的功能。
結(jié)果是我們稱之為“Buon(GI)orno”的圖形演示。
GI 如何對(duì)實(shí)時(shí)變化做出反應(yīng)的演示
由于引擎處于早期階段,該項(xiàng)目確實(shí)給我們的藝術(shù)家和圖形工程師帶來(lái)了一些挑戰(zhàn)。然而,通過時(shí)間和耐心(以及遠(yuǎn)見),我們?cè)O(shè)法同步,然后將我們的努力集中到現(xiàn)在非常易于使用的AAA 引擎中。
事不宜遲,這里是“BuonGIorno”圖形演示。這是一個(gè)意大利式小村莊的風(fēng)格化表示,并展示了使用光線追蹤后全局照明如何實(shí)時(shí)工作。
第 0 節(jié) – Buongiorno!該視頻是我們?cè)?GDC 上展示的演示的更新版本,下面我們將解釋屏幕上發(fā)生的事情(可參照以下時(shí)間節(jié)點(diǎn)查看):– 0:00 到 0:15 :簡(jiǎn)介。– 0:16 到 0:28 :基本功能描述。– 0:29 到 0:51 :顏色擴(kuò)散和光遮擋。– 0:52 到 1 : 05:RTGI 對(duì)整個(gè)場(chǎng)景的影響(開/關(guān))。– 1:06 到 1 :28 :當(dāng)場(chǎng)景中的材質(zhì)和光照條件發(fā)生變化時(shí),由于光線追蹤,引擎實(shí)時(shí)動(dòng)態(tài)處理RTGI 效果。– 1:29 至 2:00 :場(chǎng)景展示,由 Imagination 的 PowerVR Photon 架構(gòu) + 混合渲染提供支持,使用 O3DE。
關(guān)于 O3DE 引擎
我們將首先簡(jiǎn)要介紹負(fù)責(zé)開發(fā)O3DE 的團(tuán)隊(duì)。他們是藝術(shù)家和工程師的集合,他們的角色是通過圖形演示展示創(chuàng)新技術(shù)和功能。他們從使用新軟件中受益,因?yàn)檫@有助于他們?cè)鰪?qiáng)作品的視覺效果,而公司則從性能數(shù)據(jù)收集中受益,這些數(shù)據(jù)代表了在發(fā)售設(shè)備中實(shí)施時(shí),它們將如何在硬件上運(yùn)行。
如果您對(duì) O3DE 感興趣,那么入門很簡(jiǎn)單。您可以從O3DE 的網(wǎng)站下載引擎,在穩(wěn)定版本或每日構(gòu)建版本(其中包含最新更新)之間進(jìn)行選擇。與任何新事物一樣,第一步可能令人生畏,但不要擔(dān)心,堅(jiān)持下去,您會(huì)在短時(shí)間內(nèi)就適應(yīng)它。
開發(fā)人員正在努力根據(jù)社區(qū)反饋(尤其是我們的反饋:作為引擎的早期采用者,我們與主要的O3DE 合作伙伴之一 AWS 密切合作)發(fā)布修改和更新,并提供有關(guān)如何使用這些功能的文檔。那么,經(jīng)過測(cè)試,O3DE 帶來(lái)了什么?嗯,O3DE 具有其他游戲引擎的所有典型特征,例如多線程渲染器、數(shù)據(jù)驅(qū)動(dòng)的動(dòng)畫系統(tǒng)、實(shí)時(shí)物理引擎等等。
正如我們上面提到的,O3DE的突出之處在于,與其他游戲引擎不同,它可以使用光線追蹤實(shí)時(shí)動(dòng)態(tài)地重新計(jì)算 GI,使其成為展示我們IMG CXT的硬件光線追蹤功能的完美合作伙伴。
除了 GI,我現(xiàn)在將介紹其他幾個(gè)主題,以展示熟悉引擎是多么容易,并根據(jù)我們?cè)谥谱鰾uonGIorno 演示過程中學(xué)到的知識(shí),為您提供一些提示。
創(chuàng)意工作流程
對(duì)于開發(fā)人員來(lái)說,從項(xiàng)目的第一天開始就有清晰的想法是多么重要,我怎么強(qiáng)調(diào)都不過分。制作演示或視頻游戲是一個(gè)艱巨的過程,因此您必須從一開始就擁有具體的愿景才能獲得好的結(jié)果。這意味著了解項(xiàng)目的目的。例如,我們演示的主要目的是展示如何通過使用光線追蹤GI,從物體擴(kuò)散的鮮艷色彩可以實(shí)時(shí)動(dòng)態(tài)地影響周圍環(huán)境照明和附近的實(shí)體。這就是我們?nèi)绾蜗氤鰟?chuàng)建一個(gè)意大利風(fēng)格的小村莊并創(chuàng)建有彩色房屋的想法。
通過光線追蹤 GI 影響二次光反彈的材質(zhì)開關(guān)
我們首先收集參考資料,并制作由白框組成的場(chǎng)景(或布局)的初稿,然后我們迭代相同的想法,實(shí)現(xiàn)簡(jiǎn)單的動(dòng)畫和基本的技術(shù)功能。通過這種方式,您可以立即了解您的概念是否有效,以及它的可行性。完成并獲得批準(zhǔn)后,我們開始制作構(gòu)成場(chǎng)景所需的資源。
第一階段是對(duì)資源進(jìn)行建模。您甚至可以使用照片掃描或其他技術(shù),但請(qǐng)注意,游戲引擎通常需要您生成經(jīng)過優(yōu)化的資源,因此您需要注意一些事項(xiàng)。
- 密切關(guān)注多邊形數(shù)量。
- 注意模型的拓?fù)洹?/li>
- 根據(jù)您的 UV 接縫指定平滑組。
- 調(diào)節(jié) UV 島的分布和間距,以避免顏色溢出。
達(dá)到這種優(yōu)化水平意味著您將能夠制作干凈的高多邊形到低多邊形“烘焙”(這意味著通過某些貼圖通道將細(xì)節(jié)從高多邊形造型投影到同一模型的低多邊形版本,例如凹凸、法線或高度)。這對(duì)于認(rèn)為資源已準(zhǔn)備好接收動(dòng)畫和紋理至關(guān)重要。
說到這里,讓我們進(jìn)入資源制作流程的下一部分,即創(chuàng)建紋理貼圖和材質(zhì)。
目前,基于物理渲染(PBR) 的 O3DE 工作流程要求您為每個(gè)材質(zhì)通道設(shè)置獨(dú)立的紋理貼圖。然而,在未來(lái)的更新中,開發(fā)人員正在努力提供使用稱為“紋理打包”的技術(shù)的可能性。除此之外,要導(dǎo)出的紋理貼圖的數(shù)量和類型取決于您對(duì)著色器的要求。事實(shí)上,并不是每個(gè)著色器都針對(duì)相同的用途進(jìn)行了優(yōu)化或需要相同類型的紋理。
例如,在創(chuàng)建新的PBR 材質(zhì)時(shí),O3DE 允許您在不同的著色器之間進(jìn)行選擇,每個(gè)著色器都支持不同的功能和紋理貼圖。這樣您就可以決定哪一個(gè)更適合您的需求。我希望您注意到,在O3DE 中這些不同版本的 PBR 材質(zhì)之間,有一點(diǎn)是它們都支持 “輻照度”。
O3DE 中不同 PBR 材質(zhì)預(yù)設(shè)中的輻照度
如果您可以在所有三個(gè)PBR實(shí)現(xiàn)技術(shù)中找到它,這一定很重要,對(duì)吧?
正確的!這是因?yàn)镺3DE 中的輻照度是一個(gè)通道,當(dāng)使用帶有“乘”值的 GI 來(lái)管理顏色擴(kuò)散的強(qiáng)度時(shí),它決定了從該特定材料擴(kuò)散出什么顏色。在實(shí)施 GI 時(shí),您需要注意這一點(diǎn)。
讓我們進(jìn)入下一部分,這將是關(guān)于O3DE 中的資源和功能實(shí)現(xiàn)的。
O3DE 中的資源和功能實(shí)現(xiàn)
如何使用資源填充關(guān)卡是開始可視化演示或視頻游戲的第一件事。您只需從場(chǎng)景內(nèi)的資源瀏覽器中拖動(dòng)FBX 或 GLTF 文件(3D 文件的行業(yè)標(biāo)準(zhǔn)文件格式),就會(huì)自動(dòng)創(chuàng)建具有網(wǎng)格組件的“實(shí)體”。從那里,您可以根據(jù)每個(gè)資源在場(chǎng)景中的用途開始添加“組件”。例如,讓您的關(guān)卡感覺生動(dòng)是在演示或視頻游戲中實(shí)現(xiàn)的最重要的事情之一,因此您需要知道如何在某個(gè)點(diǎn)為某些對(duì)象或角色實(shí)現(xiàn)動(dòng)畫。
O3DE 有兩種不同的動(dòng)畫方法,一種最適合蒙皮(變形)對(duì)象,另一種最適合非蒙皮對(duì)象。第一種方法涉及將Actor 組件與 Simple Motion 組件或在 O3DE“動(dòng)畫編輯器”中創(chuàng)建的運(yùn)動(dòng)系統(tǒng)一起使用。如果您不需要為實(shí)體蒙皮,您可以使用“軌跡視圖”編輯器并創(chuàng)建序列,在其中將動(dòng)畫“關(guān)鍵幀”直接放入編輯器。選擇取決于您的需要,但請(qǐng)注意,O3DE中仍然不支持蒙皮對(duì)象主動(dòng)影響 GI。對(duì)于開發(fā)人員來(lái)說,此功能仍在開發(fā)中,他們希望盡快實(shí)現(xiàn)它。
非蒙皮對(duì)象會(huì)影響光線追蹤 GI 探測(cè)器的實(shí)時(shí)激活,而蒙皮對(duì)象則不會(huì)。
預(yù)制件
預(yù)制件是一種特殊類型的組件,它允許將配置完全的游戲?qū)ο螅∣3DE中的“實(shí)體”)保存在項(xiàng)目中以供重復(fù)使用。然后,可以在場(chǎng)景甚至其他項(xiàng)目之間共享這些資源,而無(wú)需再次配置。這對(duì)于將被多次使用的對(duì)象非常有用;因此,它們至關(guān)重要,尤其是在關(guān)卡創(chuàng)建的模塊化或程序化方法上。O3DE 以預(yù)制件為中心,甚至您的關(guān)卡也會(huì)自動(dòng)設(shè)置為預(yù)制件。
使用 Prefab 實(shí)例化游戲?qū)ο螅▽?shí)體)的強(qiáng)大功能
預(yù)制件在 O3DE 中很容易創(chuàng)建:您可以通過右鍵單擊實(shí)體來(lái)完成- 然后您必須決定將其存儲(chǔ)在項(xiàng)目中的哪個(gè)位置。然后,您只需從“資源瀏覽器”訪問它們,復(fù)制并通過雙擊它們從視口或大綱中進(jìn)行編輯。您現(xiàn)在只需單擊幾下即可將您的更改從一個(gè)預(yù)制件反映到所有實(shí)例化副本!
我們現(xiàn)在已經(jīng)知道如何在編輯器中實(shí)現(xiàn)資源了——但是如果您看不到演示或視頻游戲,那它又是什么?因此,下一個(gè)主題是照明。我不會(huì)專注于基本的照明特性,但我想讓你知道如何應(yīng)用GI。
O3DE 中的 GI功能強(qiáng)大。首先,如果需要,它可以一次使用多個(gè)光源,包括定向燈、點(diǎn)光源、聚光燈和區(qū)域燈。接下來(lái),它可以計(jì)算二次光反彈,既可以為您使用硬件光線追蹤核心來(lái)進(jìn)行動(dòng)態(tài)計(jì)算,也可以作為探針與光源的單一交互進(jìn)行烘焙。第三,也是最重要的,GI也很容易設(shè)置。
您需要執(zhí)行以下操作:
- 1. 首先,轉(zhuǎn)到您的“LevelName.prefab”并添加一個(gè)名為“DiffuseGlobal Illumination”的組件。2. 選擇您希望在場(chǎng)景中具有的GI 質(zhì)量級(jí)別。3. 創(chuàng)建一個(gè)新實(shí)體,并向其中添加一個(gè)“Diffuse Probe Grid”組件(O3DE 將要求您創(chuàng)建一個(gè)“長(zhǎng)方體組件”以確定將包含和分布探針的體積邊界)。4. 通過設(shè)置 GI 體積的尺寸并將其移動(dòng)到場(chǎng)景內(nèi)需要的位置來(lái)定義GI 體積的邊界(它必須完全包含您希望受 GI 影響的實(shí)體)。5. 開始調(diào)整 GI 參數(shù),例如Probe Spacing、“Number of Rays per probe”、“Ambient Multiplier”(應(yīng)保持為 1)和偏差。您可以通過激活探針的可視化,來(lái)幫助自己在這些參數(shù)之間達(dá)到正確的平衡(“show active/inactive probes”,這是 O3DE 中最近添加的功能)。6. 確保 GI 實(shí)體處于活動(dòng)狀態(tài),模式設(shè)置為“實(shí)時(shí)(光線追蹤)”,并開始在體積影響內(nèi)播放實(shí)體、燈光、材質(zhì)和動(dòng)畫。您會(huì)注意到GI 會(huì)實(shí)時(shí)適應(yīng)您的更改,從而提供更好的整體環(huán)境照明。這就是光線追蹤 GI 的強(qiáng)大之處。
7. 任何這些步驟和設(shè)置都可以隨時(shí)查看和修改。
最后,我想談?wù)勅绾瓮瓿珊蛯?dǎo)出您的項(xiàng)目。
完成項(xiàng)目時(shí)需要注意的是后期處理。設(shè)置后處理FXS 很簡(jiǎn)單:它需要將“PostFX 層”組件添加到實(shí)體,然后您可以開始將所有其他單個(gè)效果組件添加到同一實(shí)體。目前, FX 功能有很多后處理特性可選,例如屏幕空間環(huán)境光遮蔽、自動(dòng)或手動(dòng)曝光控制、HDR顏色分級(jí)、色差、光暈等。
其他功能,例如光線追蹤屏幕空間反射,是O3DE 開發(fā)人員正在開發(fā)的東西,希望很快就會(huì)實(shí)現(xiàn)。
一些可用的后處理效果在 O3DE 中作為實(shí)體內(nèi)部的“組件”實(shí)現(xiàn)。
測(cè)試和導(dǎo)出您的工作
O3DE 編輯器可以隨時(shí)播放和測(cè)試您的關(guān)卡,跟蹤頂點(diǎn)計(jì)數(shù)、圖元計(jì)數(shù)、繪制項(xiàng)目,并監(jiān)控FPS速率。除了播放按鈕外,還有一個(gè)物理模擬按鈕,供想要嘗試該功能的人使用。
要導(dǎo)出您的作品(特別是我們演示的視頻),您可以從軌跡視圖中設(shè)置“camera director”,并創(chuàng)建最終的可播放序列。從那里,您可以直接在引擎中錄制視頻。
結(jié)論
您現(xiàn)在了解了我們?cè)趧?chuàng)建BuonGIorno 演示時(shí)了解的有關(guān) O3DE 的所有內(nèi)容。從本質(zhì)上講,我們想要展示的是 ,O3DE 是多么容易實(shí)現(xiàn)既熟悉又驚人的新功能,以增強(qiáng)您在演示和視頻游戲中的視覺效果。通過關(guān)注全局照明而不僅僅是反射,我們了解了光線追蹤如何幫助當(dāng)前和下一代開發(fā)人員制作更好、更逼真的環(huán)境照明。
雖然目前還沒有在O3DE 中同時(shí)實(shí)時(shí)運(yùn)行光線追蹤反射和光線追蹤 GI 的選項(xiàng),正如我多次提到的,開發(fā)人員正在開發(fā)它!感謝他們的努力,并且感謝 Imagination移動(dòng)和桌面PowerVR Photon 架構(gòu),這些功能將很快成為視頻游戲和實(shí)時(shí) CGI 世界的標(biāo)準(zhǔn),讓每個(gè)人都能享受更好的視覺效果。
-
imagination
+關(guān)注
關(guān)注
1文章
573瀏覽量
61316 -
光線追蹤
+關(guān)注
關(guān)注
0文章
183瀏覽量
21473
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論