Material improvements


UsdPreviewSurface now supports unit-less emissive texture map values. Previously, the RTX and Iray renderers assumed that map values were in Nits. Emissive units is not specified in the USD specification and in HdStorm and other renderers, the textured value is often the final exposed RGB value in the image.

In 2022.3.0 emissive values are scaled such that their value is equal to the output RGB image for our default camera Exposure

Camera Exposure







Distant Light

UsdPreviewSurface supports UsdTransform2d and UsdPrimvarReader nodes

MDL Reloading

Omniverse will now dynamically re-load changes to MDL source, updating the MDL database and re-compile the material.


Omniverse adds the base OmniPBR template model to the Material Editor. You can now map and modify inputs directly to the base material model to create custom MDL materials.

Material Editor

Authors can now add their own materials and functions to the Material Editor Node List.

MaterialX Read Support

Omniverse supports reading of .mtlx material documents.

MDL Path Resolution Changes

Summary of the changes for resolving MDL paths:

  • MDL built-in paths (i.e OmniPBR.mdl, OmniPBR_ClearCoat.mdl, OmniSurface, nvidia/aux_definitions.mdl, nvidia/core_definitions.mdl, OmniUE4Base.mdl, etc.) will no longer be anchored to their referencing layer URL (i.e omniverse://nucleus-server/some/stage.usd or https://server/some/other/stage.usd). These MDL built-in paths will still resolve correctly if they live next to the referencing layer URL but that is completely handled by the client-library and not USD

  • MDL paths not prefixed with “./” or “../” can still be anchored relative to the referencing layer if they exist and the referencing layer is a URL or file path on disk

  • MDL built-in paths are no longer considered search paths

  • MDL built-in paths are no longer considered relative paths unless prefixed with “./” or “../”

  • This behavior works through SdfAssetPath type Attributes without modifying Sdf

  • This behavior can be enabled / disabled by setting the environment variable OMNI_USD_RESOLVER_MDL_BUILTIN_BYPASS or in <APPLICATION>/kit/extscore/omni.usd.config/omni/usd_config/extension.py

  • At the moment, this resolve behavior is disabled by default by can be easily switched