NVIDIA 與 OpenUSD 聯(lián)盟(AOUSD)早前共同宣布成立 OpenUSD 聯(lián)盟材質(zhì)工作組,推動(dòng)通用場(chǎng)景描述(OpenUSD)格式材質(zhì)交換的標(biāo)準(zhǔn)化。作為用于在 3D 世界內(nèi)進(jìn)行描述、組合、模擬和協(xié)作的可擴(kuò)展框架和生態(tài)系統(tǒng),OpenUSD 使開發(fā)者能夠構(gòu)建可互操作的 3D 工作流,開啟了工業(yè)數(shù)字化的新時(shí)代。
此外,NVIDIA Omniverse 還將為全新 OpenPBR 材質(zhì)模型提供原生支持,該模型是一個(gè)由 Adobe 和 Autodesk 共同開發(fā)的基于 MaterialX 的 uber-shader 模型。該集成將為用戶提供可在各種應(yīng)用中使用的統(tǒng)一材質(zhì)界面。
標(biāo)準(zhǔn)化材質(zhì)交換
建立 OpenUSD 聯(lián)盟材質(zhì)工作組的初衷是為了定義 OpenUSD 中的材質(zhì)表示策略。該工作組的首要任務(wù)是利用 UsdShade 中的 OpenUSD 標(biāo)準(zhǔn)化 MaterialX 標(biāo)準(zhǔn)庫(kù)。
任何符合標(biāo)準(zhǔn)的 OpenUSD 實(shí)現(xiàn)都可以訪問一套通用的標(biāo)準(zhǔn)化著色器節(jié)點(diǎn),無需依賴特定的著色器后端就能構(gòu)建可跨渲染器工作的材質(zhì)。需要長(zhǎng)期穩(wěn)定標(biāo)準(zhǔn)定義的行業(yè)將受益于這一更新。開發(fā)者可以使用這些 OpenUSD 材質(zhì),并確信它們會(huì)在當(dāng)前和未來的生態(tài)系統(tǒng)中發(fā)揮作用。
什么是著色器,它為什么重要?
我們使用著色器來描述計(jì)算機(jī)圖形中的材質(zhì)。著色器是一種由渲染器運(yùn)行的程序,用于構(gòu)建材質(zhì)定義。著色器必須告訴渲染器材質(zhì)的結(jié)構(gòu),查看構(gòu)成其表面外觀各層的雙向散射分布函數(shù)(BSDF)以及光線如何在它們之間傳輸,然后描述如何在物體表面修改雙向散射分布函數(shù),通常的方式是通過讀取和組合紋理來改變表面外觀。
編寫這些程序的語(yǔ)言有很多種,不同的渲染器對(duì)它們的支持也各不相同。例如許多離線渲染器可以直接使用 C++ 編寫著色器并與它們的 API 相兼容,這意味著它們無法與其他渲染器互操作。
在實(shí)時(shí)應(yīng)用中,著色器通常使用 GLSL 或 HLSL 編寫。GLSL 和 HLSL 不止是能夠描述材質(zhì),比如在 Vulkan 和 DirectX 中運(yùn)行計(jì)算工作負(fù)載等。GLSL 和 HLSL 是低級(jí)著色語(yǔ)言的例子,用戶必須直接用這種語(yǔ)言來編寫材質(zhì)的組成 BSDF。
NVIDIA 材質(zhì)定義語(yǔ)言(MDL)則是一種高級(jí)著色語(yǔ)言。MDL 將 BSDF 作為 Closure 提供給用戶,由用戶描述如何組合和改變 BSDF 以生成所需的外觀。
MDL 負(fù)責(zé)將高級(jí)定義轉(zhuǎn)換為底層著色代碼,以 HLSL、PTX、C++ 或其他語(yǔ)言實(shí)現(xiàn)該材質(zhì)。然后,渲染器直接使用生成的代碼評(píng)估材質(zhì)的外觀。相同的材質(zhì)定義可以在不同硬件平臺(tái)的渲染器上使用,并同時(shí)保持相同的外觀。
以這種方式描述的材質(zhì)可以編寫成單一的著色器,但用戶更常用 shader graph 來編寫材質(zhì)。借助 Shader graph,用戶能夠通過在圖形編輯器中插入著色器節(jié)點(diǎn)(shader node)來創(chuàng)建新的材質(zhì)。著色器節(jié)點(diǎn)通常映射到底層著色語(yǔ)言中的單個(gè)函數(shù)。
圖 1. 由 Omniverse 材質(zhì)編輯器擴(kuò)展中的連接節(jié)點(diǎn)構(gòu)建而成的 UsdShade 圖形
通過使用 OpenUSD 的 UsdShade 基元作為節(jié)點(diǎn),直接將材質(zhì)描述為 shader graph。節(jié)點(diǎn)的表示方法未指定。用戶必須為每個(gè)著色器提供一個(gè)實(shí)現(xiàn)方式,以確保它能與計(jì)劃使用的應(yīng)用程序一起打開 USD 圖層。OpenUSD 支持在不同應(yīng)用之間交換 3D 場(chǎng)景。為此,通用的材質(zhì)描述是必須的。
使用 MaterialX 將材質(zhì)描述為 shader graph
MaterialX 由學(xué)院軟件基金會(huì)(ASWF)托管,是一種獨(dú)立于渲染器的開源文件格式和庫(kù),其用途是將材質(zhì)描述為 shader graph。它在標(biāo)準(zhǔn)庫(kù)中定義了一組通用節(jié)點(diǎn)。還描述了如何將節(jié)點(diǎn)連接成圖。MaterialX 可以表示為帶有自定義模式(.mtlx格式)的 XML 文檔,也可以直接在 OpenUSD 中表示為 UsdShade 節(jié)點(diǎn)圖。
MaterialX 使用可插拔的后端來生成可執(zhí)行代碼,其中最完整的是 MDL。當(dāng)渲染器通過 OpenUSD 加載 MaterialX 材質(zhì)時(shí),它會(huì)請(qǐng)求后端生成代碼。然后,后端為目標(biāo)平臺(tái)生成底層代碼,渲染器可以執(zhí)行這些代碼來評(píng)估材質(zhì)。
OpenUSD、MaterialX 和 MDL 在高級(jí)描述中創(chuàng)建材質(zhì),這些材質(zhì)可在任何目標(biāo)平臺(tái)上任何支持的渲染器之間共享,因此確保了視覺外觀的一致性。
圖 2. MaterialX 如何使用 MDL 后端為不同平臺(tái)生成代碼的示意圖
Omniverse 通過 MDL 后端原生支持 MaterialX,并可直接加載為 UsdShade 圖形,或者通過將 .mtlx 文檔引用到 OpenUSD 圖層中。
MaterialX 圖形可以任意大小且復(fù)雜,在極端情況下可能不適合實(shí)時(shí)使用。NVIDIA Omniverse RTX 渲染器使用 MDL distilling technology 將任意復(fù)雜的材質(zhì)轉(zhuǎn)換成緊湊的材質(zhì)表示方式,在保證最佳實(shí)時(shí)性能的同時(shí)保留材質(zhì)外觀。
OpenPBR:可在 Omniverse 和 MaterialX 中使用的 uber-shader
材質(zhì)圖形為用戶提供了創(chuàng)建各種材質(zhì)的最大靈活性。但在復(fù)雜的工作流中,往往更傾向于使用一個(gè)統(tǒng)治全局的材質(zhì)定義,即“uber-shader”。這種著色器可以直接使用,比如用于掃描的 PBR 紋理數(shù)據(jù),也可以作為在 shader graph 中進(jìn)行進(jìn)一步自定義的基礎(chǔ),省去了用戶從頭開始構(gòu)建整個(gè)材質(zhì)的麻煩。
去年,ASFA、Autodesk 和 Adobe 宣布推出新 uber-shader 模型 OpenPBR,并將其作為 MaterialX 內(nèi)的開放規(guī)范和參考實(shí)現(xiàn)進(jìn)行開發(fā)。NVIDIA Omniverse 團(tuán)隊(duì)正與 OpenPBR 工作組合作,完善新的著色模型,并在發(fā)布首個(gè)著色模型生產(chǎn)版本后在 Omniverse 中提供 OpenPBR 實(shí)現(xiàn)。
Omniverse 還將擁有一個(gè)新的 OpenPBR 材質(zhì)庫(kù)。開發(fā)者可以在任何 OpenUSD 階段使用這些以 OpenUSD 和 MaterialX 形式提供的材質(zhì)。該材質(zhì)庫(kù)提供了一個(gè)隨時(shí)可用、物理精確的材質(zhì)庫(kù),可加速可視化應(yīng)用的構(gòu)建。
開始使用材質(zhì)交換
了解各種技術(shù)及其相互聯(lián)系對(duì)于使用計(jì)算機(jī)圖形處理材質(zhì)的開發(fā)者和內(nèi)容創(chuàng)作者至關(guān)重要。OpenUSD 與 MaterialX 和 MDL 提供了一種解決方案,可實(shí)現(xiàn)材質(zhì)在不同應(yīng)用程序和渲染器之間的無縫交換,從而實(shí)現(xiàn)材質(zhì)共享。
在 Omniverse 的支持和 OpenUSD 聯(lián)盟材質(zhì)工作組的不懈努力下,無縫交換、完整且物理精確的材質(zhì)描述將成為現(xiàn)實(shí)。
未來,該工作組將致力于在 OpenUSD 中添加完整的物理材質(zhì)定義,包括激光雷達(dá)、聲學(xué)和熱學(xué)特性等非可視數(shù)據(jù)。他們還將探索神經(jīng)材質(zhì)等新的材質(zhì)描述,并努力實(shí)現(xiàn) OpenUSD 材質(zhì)與 glTF 等其他系統(tǒng)之間的交換。
審核編輯:彭菁
-
3D
+關(guān)注
關(guān)注
9文章
2878瀏覽量
107538 -
NVIDIA
+關(guān)注
關(guān)注
14文章
4986瀏覽量
103055 -
模型
+關(guān)注
關(guān)注
1文章
3243瀏覽量
48840 -
渲染器
+關(guān)注
關(guān)注
0文章
18瀏覽量
3236
原文標(biāo)題:利用 OpenUSD、MaterialX 和 OpenPBR 實(shí)現(xiàn)虛擬世界中的無縫材質(zhì)交換
文章出處:【微信號(hào):NVIDIA-Enterprise,微信公眾號(hào):NVIDIA英偉達(dá)企業(yè)解決方案】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論