NVIDIA Technical Blog

Unlock Seamless Material Interchange for Virtual Worlds with OpenUSD, MaterialX, and OpenPBR

thumbnail

Table of Contents

  1. Standardizing Material Interchange with OpenUSD and MaterialX
  2. Describing Materials as Shader Graphs with MaterialX
  3. Utilizing OpenPBR for Seamless Material Interchange

1. Standardizing Material Interchange with OpenUSD and MaterialX

  • The AOUSD Materials Working Group is standardizing the MaterialX standard library with OpenUSD in UsdShade.
  • Developers can confidently use OpenUSD materials, ensuring compatibility across the ecosystem.
  • Shaders in real-time applications are typically written in low-level shading languages like GLSL or HLSL.
  • MaterialX is an open-source file format and library for describing materials as shader graphs.
  • MaterialX allows for the generation of low-level code for different platforms, facilitating the evaluation of materials.

2. Describing Materials as Shader Graphs with MaterialX

  • MaterialX hosted at ASWF describes materials as shader graphs, detailing how nodes are connected to form a graph.
  • Shader graphs provide flexibility for creating a variety of materials.
  • Users can create new materials by plugging shader nodes in a graph editor.
  • MaterialX backend generates low-level code for rendering engines to evaluate the materials effectively.

3. Utilizing OpenPBR for Seamless Material Interchange

  • OpenPBR is an "uber-shader" available in Omniverse and MaterialX for streamlining material creation.
  • An overarching material definition, OpenPBR, offers a simplified approach for utilizing materials, such as PBR textures.
  • Omniverse, in collaboration with the OpenPBR group, will implement the new shading model for seamless material interchange.
  • Developers can access OpenPBR materials via OpenUSD and MaterialX, ensuring compatibility across different applications and renderers.