Omniverse Materials#

Materials in Omniverse are supported using MDL, and MaterialX.

NVIDIA Material Definition Language (MDL)

The NVIDIA Material Definition Language (MDL) is a shading language used for defining and describing material appearances in computer graphics. MDL enables the specification of the physical properties and surface characteristics of materials, as well as their interaction with light.

Key Features#

Physically Based Rendering (PBR): MDL supports physically based rendering principles, simulating the behavior of light to achieve realistic material representation.

Modularity: MDL uses a modular approach to material creation. Users can define reusable components, which can be combined and layered to create complex materials.

Procedural Texture Generation: MDL includes a set of procedural texture functions for generating textures using mathematical algorithms, allowing for the creation of intricate patterns and variations.

Scalability: MDL materials are designed to scale to different levels of detail and performance requirements. This allows their use in diverse contexts, from real-time rendering in interactive applications to high-quality rendering photorealistic rendering and simulation.

Interoperability: MDL is compatible with multiple rendering engines and applications, providing a standard format for material exchange across different software and hardware platforms.

You can read more about the MDL language in the following.

Asset Validation for Materials#

Asset Validation in Omniverse refers to the process of verifying the integrity and correctness of assets within the USD ecosystem. Asset validation ensures that the USD files adhere to the required standards, have valid data structures, and are compatible with the supported features and functionalities.

Attention

The USD ecosystem is becoming more strict in enforcing standards. In some cases this can break older assets authored previous to these changes. We have introduced an Asset Validator Extension to help fix these issues and create more robust assets. If you suspect something is wrong when you load an asset or you see a warning, please run the extension which can be found under the :menuselection: Windows > Utilities > Asset Validator sub menu. Refer to the Asset Validator Documentation for more info.

Asset Validator Menu

Material rules#

Rule

Result

Missing Material Binding API

Ensures the MaterialBindingAPI is applied to on prims with bound materials

Dangling Material Bindings

Ensures that the bound material exists in the scene

Material path verification

MDL assets require absolute paths or relative paths prefixed with ./ to resolve properly. This Rule suggests to prefix ambiguous MDL asset path(s) with a ./ to enforce that it is a relative path (i.e ./M_PlantSet_A13.mdl).

Texture Checker

A RuleChecker which handles locating texture files automatically.

Normal Map Texture Checker

UsdUVTexture nodes that feed the inputs:normals of a UsdPreviewSurface must ensure that the data is encoded and scaled properly

The full set of Asset Validation Rules

Color Space#

Texture Slots in Omniverse Apps contain a dropdown allowing the selection of color-space. Choosing the correct color space is critical to correct visual output and should be set to match the Color Space of the image being used. As a general rule, data images like Normal, Roughness, Metallic, etc. are best using RAW while full color images like Base/Diffuse Color should be set to sRGB. Auto can be used to help guess the color space but should be used cautiously as it can guess incorrectly based on several factors.

Color Space

Result

Auto

Assigns the Color Space based on metadata or bit depth of the image.
Checks for gamma or color space metadata in the texture file. If the
texture is 8-bit or has 3 channels or if it is 8-bit and has 4
channels, the image is read in sRGB. Otherwise read the image in RAW.

sRGB

Applies sRGB to Linear color transformation.

RAW

Uses texture data as it’s read from the file.