通用場景描述(OpenUSD)是一個(gè)開放且可擴(kuò)展的框架和生態(tài)系統(tǒng),它通過 API 支持 3D 虛擬世界中的合成、編輯、查詢、渲染、協(xié)作和仿真。
本文將介紹如何開始在現(xiàn)有資產(chǎn)和工具中使用 OpenUSD 以及可以采取哪些步驟不斷改進(jìn) USD 工作流。
關(guān)于 OpenUSD 基本概念、詞匯和最佳實(shí)踐的交互式介紹,請瀏覽 NVIDIA 深度學(xué)習(xí)培訓(xùn)中心的免費(fèi) Learn OpenUSD 學(xué)習(xí)路徑。
數(shù)據(jù)交換
OpenUSD 不會取代現(xiàn)有的工具或數(shù)據(jù)格式。顧名思義,通用場景描述為網(wǎng)格和 PBR 材質(zhì)等諸多 3D 概念提供了一種通用的數(shù)據(jù)表示方式,并且其支持范圍正在不斷擴(kuò)展到物理學(xué)、B-reps 等其他概念。
如要將 OpenUSD 用于現(xiàn)有資產(chǎn),請先使用導(dǎo)出器或轉(zhuǎn)換器將內(nèi)容導(dǎo)入 USD。該方法可以將現(xiàn)有資產(chǎn)快速、有效地集成到新的 USD 工作流中,以便提升各個(gè)生產(chǎn)階段的協(xié)作性、性能和互操作性。
有關(guān)如何開始使用 USD 的詳細(xì)信息,參見支持 USD 交換的應(yīng)用和工具列表。
如果想要擴(kuò)展 USD 工作流并將 OpenUSD 用于專有數(shù)據(jù),可能需要開發(fā)自己的數(shù)據(jù)交換解決方案。
您可通過數(shù)據(jù)交換管線管理從一種數(shù)據(jù)格式到另一種數(shù)據(jù)格式的內(nèi)容提取、轉(zhuǎn)換和攝入。如要將現(xiàn)有內(nèi)容整合到 USD 工作流中,需要使用以下幾種基本的數(shù)據(jù)交換解決方案:
導(dǎo)入器和導(dǎo)出器:可在數(shù)字內(nèi)容創(chuàng)建(DCC)應(yīng)用中找到這兩種工具,使用它們直接將 3D 資產(chǎn)導(dǎo)入到 USD 或從 USD 中導(dǎo)出 3D 資產(chǎn)。Rhino、Blender 等常用軟件可方便地導(dǎo)入 3D 資產(chǎn),Houdini 等應(yīng)用可將 3D 資產(chǎn)打開為原生 USD 文件,讓用戶能夠更加簡單地在現(xiàn)有工具中使用 USD。
轉(zhuǎn)換器:用于將各種格式的 3D 文件轉(zhuǎn)換為 USD 文件或從 USD 文件轉(zhuǎn)換為 3D 文件的獨(dú)立程序或腳本。此類工具依靠靈活的批量處理和自動化,無需人工干預(yù)即可輕松轉(zhuǎn)換資產(chǎn)。
USD 文件格式插件:此類 USD 插件讓用戶能夠以最初的源格式保存數(shù)據(jù),同時(shí)在打開一個(gè)階段時(shí)動態(tài)讀取數(shù)據(jù)并將其轉(zhuǎn)換為 USD 格式。這意味著用戶既能夠處理原生格式的資產(chǎn),同時(shí)還能夠受益于 USD 的強(qiáng)大功能并保持?jǐn)?shù)據(jù)的完整性和工作流效率。
概念數(shù)據(jù)映射和提取、轉(zhuǎn)換、加載(ETL)是開發(fā)數(shù)據(jù)交換解決方案的關(guān)鍵流程,有助于確保 3D 資產(chǎn)和數(shù)據(jù)的無縫傳輸與集成。
概念數(shù)據(jù)映射涉及定義一個(gè)系統(tǒng)或格式的數(shù)據(jù)如何與另一個(gè)系統(tǒng)或格式的數(shù)據(jù)相對應(yīng)。由于每種應(yīng)用或文件類型都可能有自己特有的數(shù)據(jù)結(jié)構(gòu)和表示方法,因此這一點(diǎn)在處理不同的 DCC 應(yīng)用或文件類型時(shí)尤為重要。
ETL 是一個(gè)將數(shù)據(jù)從一個(gè)系統(tǒng)移動并整合到另一個(gè)系統(tǒng)的完整流程。它包含以下主要步驟:
提?。?/strong>從源系統(tǒng)或文件格式中提取數(shù)據(jù)。數(shù)據(jù)可以是 3D 模型、紋理、動畫或任何其他相關(guān)內(nèi)容。
轉(zhuǎn)換:轉(zhuǎn)換提取的數(shù)據(jù),使其符合目標(biāo)運(yùn)行時(shí)的要求,包括轉(zhuǎn)換單位、重新格式化數(shù)據(jù)結(jié)構(gòu)或?yàn)V除無關(guān)數(shù)據(jù)或私人數(shù)據(jù)。
加載:將轉(zhuǎn)換后的數(shù)據(jù)加載到目標(biāo)運(yùn)行時(shí),使數(shù)據(jù)可直接用于基于 USD 的工作流和應(yīng)用。該步驟有時(shí)被稱為攝取。
概念數(shù)據(jù)映射和 ETL 流程對于將內(nèi)容有效、準(zhǔn)確傳輸?shù)?USD 生態(tài)系統(tǒng)并在整個(gè)交換過程中保持其質(zhì)量和功能至關(guān)重要。OpenUSD Exchange SDK 有助于加快數(shù)據(jù)交換解決方案的開發(fā)速度和編寫高質(zhì)量的 OpenUSD 數(shù)據(jù)。
在將數(shù)據(jù)導(dǎo)入 OpenUSD 后,下一步就是了解如何匯總和構(gòu)建數(shù)據(jù)以實(shí)現(xiàn)最高效率。
用戶可通過免費(fèi)的 Learn OpenUSD 自學(xué)課程了解如何開發(fā)數(shù)據(jù)交換管線。
資產(chǎn)結(jié)構(gòu)化原則和內(nèi)容聚合
OpenUSD 的真正優(yōu)勢在于通過建立良好的資產(chǎn)結(jié)構(gòu)實(shí)現(xiàn)有效的內(nèi)容聚合和資產(chǎn)重用。建立良好的資產(chǎn)結(jié)構(gòu)和內(nèi)容聚合是在復(fù)雜項(xiàng)目中有效組織和組合 3D 資產(chǎn)與場景的關(guān)鍵。
在建立資產(chǎn)結(jié)構(gòu)時(shí),需要將 3D 內(nèi)容分解成更小、更易于管理的組件,以便引用和重復(fù)使用。這樣就可以創(chuàng)建一個(gè)層次分明的有序結(jié)構(gòu),簡化資產(chǎn)的管理和維護(hù)。該方法只在需要時(shí)加載必要的組件,提高了可重用性和性能。
如果有良好的資產(chǎn)結(jié)構(gòu),就可以通過不同的工作流在不同圖層中獨(dú)立編寫數(shù)據(jù),然后將這些圖層組合成一個(gè)資產(chǎn)。這種無損編輯方法可確保一個(gè)團(tuán)隊(duì)所做的更改不會覆蓋另一個(gè)團(tuán)隊(duì)的工作,提高了團(tuán)隊(duì)之間的協(xié)作性。
在創(chuàng)建了較小的組件后,就可以使用內(nèi)容聚合將它們組合成一個(gè)連貫的場景。引用、有效載荷等合成操作符支持這一過程。
合成操作(Composition arcs)
合成操作是 OpenUSD 的基礎(chǔ)運(yùn)算符,可將較小的場景描述單元組合成較大的單元,使 OpenUSD 工作流中的資產(chǎn)結(jié)構(gòu)和內(nèi)容聚合更加穩(wěn)健。
該功能是使 OpenUSD 有別于其他 3D 數(shù)據(jù)格式和框架的“超能力”之一。
合成操作是無損組合 USD 數(shù)據(jù)單元的重要工具。OpenUSD 中的可用合成操作包括子圖層、引用、有效載荷、變體集、繼承、專門化以及最新添加的重定位。
可先通過以下合成操作了解如何在自己的工作流中使用這些合成操作:
子圖層:使多個(gè)協(xié)作者或流程能夠?qū)o定的 USD 上下文進(jìn)行操作。子圖層中編寫的數(shù)據(jù)以“包含”方式添加到 USD 上下文中。
引用:最適合用于內(nèi)容聚合,可將一個(gè) USD 上下文嫁接到另一個(gè) USD 上下文的層次結(jié)構(gòu)中。通過引用資產(chǎn),您可以維護(hù)每個(gè)組件的單一基準(zhǔn)真相來源,從而確保一致性并減少冗余。這在重復(fù)使用相同資產(chǎn)的大型項(xiàng)目中尤其有用。
變體集:用于存儲一個(gè)組件的多個(gè)變體,可在不復(fù)制數(shù)據(jù)的情況下增強(qiáng)適應(yīng)性。借助該功能,您只需要一個(gè)高效的結(jié)構(gòu),就可以創(chuàng)建一項(xiàng)資產(chǎn)的不同版本,例如不同的材質(zhì)或配置。變體集的用例之一是為一個(gè)模型指定不同的紋理和材質(zhì)或配置,例如描述一輛具有不同油漆顏色或不同輪輞樣式的汽車。
學(xué)習(xí)和使用合成操作將為 USD 工作流帶來立竿見影的效果。但由于其高度的靈活性和應(yīng)用的多樣性,可能需要數(shù)年時(shí)間才能掌握合成操作。想要有效使用OpenUSD,可以進(jìn)行多種嘗試并加深對合成操作類型的了解。
通過免費(fèi)的 Learn OpenUSD 自學(xué)培訓(xùn)學(xué)習(xí)創(chuàng)建合成操作。
開始使用 OpenUSD
OpenUSD 提供了一套實(shí)現(xiàn)高效 3D 資產(chǎn)管理和內(nèi)容聚合的完整功能,因此是大型項(xiàng)目不可或缺的框架。掌握了數(shù)據(jù)交換、資產(chǎn)結(jié)構(gòu)化與合成操作,就可以顯著提高 3D 工作流中的協(xié)作性、性能和可重用性。
通過 Learn OpenUSD 學(xué)習(xí)路徑中的課程鞏固基礎(chǔ)知識。
https://www.nvidia.com/en-us/learn/learning-path/openusd/
在 Omniverse Kit SDK 上使用 OpenUSD 進(jìn)行開發(fā),并通過 USD NIM 微服務(wù)創(chuàng)建適用于 OpenUSD 開發(fā)的生成式 AI 模型。
https://build.nvidia.com/search?q=OpenUSD
有關(guān) OpenUSD 的更多資源,請?jiān)L問 OpenUSD 聯(lián)盟(AOUSD)論壇和 AOUSD 網(wǎng)站。
https://forum.aousd.org/