• <xmp id="om0om">
  • <table id="om0om"><noscript id="om0om"></noscript></table>
  • 模擬/建模/設計

    借助 OpenUSD、MaterialX 和 OpenPBR,為虛擬世界解鎖無縫材質交換

    今天,NVIDIA 和 OpenUSD 聯盟 (AOUSD) 宣布成立 AOUSD 材質工作組,專注于 Universal Scene Description (通用場景描述,簡稱 OpenUSD)。OpenUSD 是一個可擴展的框架和生態系統,用于在 3D 世界中描述、合成、模擬和協作,幫助開發者構建可互操作的 3D 工作流程,開啟工業數字化的新時代。

    此外,NVIDIA Omniverse 將支持新推出的 OpenPBR 材質模型,這是由 Adobe 和 Autodesk 共同開發的基于 MaterialX 的超級著色器模型。這種集成將為用戶提供一個可在各種應用程序中使用的統一材質界面。

    標準化材質交換

    AOUSD 材質工作組的首要任務是定義 OpenUSD 中材質表示策略,UsdShade

    任何符合規范的 OpenUSD 實現都可以訪問一組通用的標準化著色器節點,用于構建跨渲染器的材質,而無需依賴特定的著色器后端。需要長期穩定的標準定義的行業將受益于此更新。開發者可以使用 OpenUSD 材質,并確信它們會在當前和未來的生態系統中發揮作用。

    什么是著色器,為什么它們很重要?

    為了描述計算機圖形中的材質,我們使用著色器。著色器是渲染器運行的程序,用于構建材質定義。著色器必須告訴渲染器材質的結構如何構建,即材質層面的表面外觀由多向散射分布函數 (BSDF) 組成,以及光線如何在它們之間傳輸。然后,著色器描述了 BSDF 如何在物體表面的層面上發生變化,通常通過閱讀和組合紋理來變化表面外觀。

    有許多不同的語言用于編寫這些程序,并且各種渲染器對這些程序提供不同程度的支持。例如,許多離線渲染器允許直接在 C++中編寫著色器,這意味著它們不能與其他渲染器進行互操作。

    在實時應用程序中,著色器通常使用 GLSL 或 HLSL 編寫 .GLSL 和 HLSL 不僅可以描述材質,還可以在 Vulkan 和 DirectX 中運行計算工作負載 .GLSL 和 HLSL 是低級著色語言示例,用戶必須直接在語言中編寫材質的組成部分 BSDF。

    另一端則是 NVIDIA 材質定義語言 (MDL),這是一種高級著色語言。MDL 提供了 BSDF 作為關聯,用戶可以描述如何組合和變化它們以產生所需的外觀。

    MDL 負責將高級定義轉換為低級著色代碼,以便在 HLSL、PTX、C++或其他語言中實施該材質。然后,渲染器使用該代碼直接評估材質的外觀。同一材質定義可在不同硬件平臺上的不同渲染器中使用,同時保持相同的外觀。

    這種方式描述的材質可以寫成單個獨立的著色器,但是用戶通常會使用 著色器圖形(Shader Graph)。著色器圖形允許用戶在圖形編輯器中插入 著色器節點(Shader Node)。著色器節點通常映射到底層著色語言中的單個函數。

    Nodes such as text_roughness, text_color, OpenPBRBase, and material output connected in the Omniverse Material Editor Extension, representing a UsdShade graph.
    圖 1.Omniverse 材質編輯器擴展程序中連接節點構建的 UsdShade 圖形

    通過使用 OpenUSD 的 UsdShade 基元作為節點,直接將材質描述為著色器圖形。節點的表示形式未指定。用戶必須為每個著色器提供實現,以確保它們能夠與用戶計劃使用的應用程序一起打開 USD 層 .OpenUSD 支持在不同應用程序之間交換 3D 場景,為此,必須使用通用材質描述。

    使用 MaterialX 將材質描述為著色器圖形

    托管于學院軟件基金會 (ASWF)MaterialX 是一種獨立于渲染器的開源文件格式和庫,用于以著色器圖形形式描述材質。它定義了標準庫中的一組通用節點。它還描述了如何將節點插入到一個圖形中。MaterialX 可以以 XML 文檔的形式呈現(.mtlx 格式)或直接在 OpenUSD 中作為 UsdShade 節點圖形。

    MaterialX 使用可插入的后端來生成可執行代碼,其中最完整的是 MDL。當渲染器通過 OpenUSD 加載 MaterialX 材質時,它會向后端發出代碼生成請求。后端會為目標平臺生成低級代碼,渲染器可以執行這些代碼來評估材質。

    OpenUSD、MaterialX 和 MDL 在高級描述中創建材質,這些材質可在任何目標平臺上的任何支持渲染器上共享,從而確保視覺效果相同。

    A diagram of how MaterialX uses the MDL backend to generate code from physically based visual materials and physically based non-visual materials for different platforms, including HLSL, x86, ARM, PTX, and LLVM IR.
    圖。描述 MaterialX 如何使用 MDL 后端為不同平臺生成代碼的圖表

    通過使用 MDL 后端,Omniverse 本地支持 MaterialX,可以直接加載為 UsdShade 圖形,也可以通過參考mtlx將文檔導入 OpenUSD 層。

    MaterialX 圖形可以任意大小和復雜,在極端情況下,它們可能不適合實時使用。NVIDIA Omniverse RTX 渲染器使用 MDL 的蒸餾技術將任意復雜的材質轉換為緊湊的材質表示形式,以確保實時性能,同時保留材質外觀。

    OpenPBR:Omniverse 和 MaterialX 中提供的超級著色器

    MaterialX 材質圖形為用戶提供了創建各種材質的最大靈活性,但在復雜的工作流程中,往往更傾向于使用一個統治全局的材質定義,即“uber-shader”。這種著色器可以直接使用掃描的 PBR 紋理數據,也可以作為著色器圖形的基礎,用于進一步定制,從而節省用戶構建整個材質的麻煩。

    去年,Academy Software Foundation、Autodesk 和 Adobe 宣布推出全新超級著色器模型 OpenPBR,開發為 MaterialX 內的開放規格和參考實現。NVIDIA Omniverse 團隊正在與 OpenPBR 團隊合作,完善新的著色模型,并在首個生產版著色模型發布后在 Omniverse 中提供 OpenPBR 實現。

    Four examples of OpenPBR materials rendered in Omniverse RTX.
    圖 3.在 Omniverse RTX 中渲染的 OpenPBR 材質選擇

    Omniverse 還將推出一個新的 OpenPBR 材質庫。開發者可以在任何 OpenUSD 階段使用這些材質,這些材質可以作為 OpenUSD 和 MaterialX 材質提供。這個庫提供一個即用型物理級準確的材質庫,可加速構建視覺應用。

    Two angles of a warehouse simulation featuring a forklift retrieving boxes from storage racks using the new Omniverse OpenPBR material library.
    圖 4.使用新的 Omniverse OpenPBR 材質庫進行倉庫模擬

    開始使用材質交換

    了解各種技術及其互連關系對于使用計算機圖形處理材質的開發者和內容創作者至關重要 .OpenUSD、MaterialX 和 MDL 提供了一種解決方案,可實現材質在不同應用程序和渲染器之間的無縫交換,從而實現材質共享。

    借助 Omniverse 的支持和 AOUSD 材質工作組的持續努力,無縫互換、完整、物理級準確的材質描述將成為現實。

    未來,該團隊將專注于在 OpenUSD 中添加完整的物理材質定義,其中包括 LiDAR、聲學和熱性質等非視覺數據。他們還將探索新的材質描述,如神經材質,并與 glTF 等其他系統交換 OpenUSD 材質。

    要開始使用 NVIDIA Omniverse 中的材質,請下載 NVIDIA Omniverse。

    如果您想貢獻力量或對 OpenUSD 中的材質發展感興趣,請加入 AOUSD 和材質工作組。要了解有關 OpenUSD 的更多信息,請參加即將舉辦的 OpenUSD 日,屆時將發布 NVIDIA RTX 40 系列顯卡的信息,活動將于 2024 年 3 月 19 日線下或線上舉行。

    ?

    0

    標簽

    人人超碰97caoporen国产