RTX Sensor Non-Visual Materials#

The omni.sensors.nv.materials extension, documented here, provides support for rendering materials, which are visible in non-visual spectra for RTX sensors. These materials are referred to as “non-visual materials”.

As described in the extension documentation, non-visual materials are rendered using USD attributes, and can be specified in the USD file. Isaac Sim includes the isaacsim.core.experimental.materials.NonVisualMaterial class to simplify setting these attributes on Material prims. The renderer will compute a material ID for each non-visual material, based on the combination of provided attributes. This material ID is provided by the GenericModelOutput AOV, and is exposed by multiple Annotators. Refer to RTX Sensor Annotators for more details.

Specifying Non-Visual Material Attributes#

Valid non-visual material attribute names and values are specified in Omniverse Kit documentation.

User Interface#

Attributes may be added to materials from the UI by right-clicking the material in the Stage window, then selecting Add > Attribute. This will open a new window like the one below, enabling you to specify custom non-visual attributes.

Adding a non-visual material attribute.

After adding the new attribute, it will appear in the material’s properties, at which point it can be populated:

Populating a new non-visual material attribute.

Python#

The isaacsim.core.experimental.materials.NonVisualMaterial class provides a Python API to simplify setting non-visual material attributes on Material prims. The following standalone example demonstrates how to use this API. Examine the source code to learn more.

./python.sh standalone_examples/api/isaacsim.sensors.experimental.rtx/apply_nonvisual_materials.py

After running this example, verify that you receive the following:

Cubes with non-visual materials applied, visualized by the default RTX Renderer.

Observe each cube is colored differently in the visual spectrum. Select the Non-Visual Material ID Debug View in the viewport by selecting RTX - Real-Time > Debug View > Non-Visual Material ID. The following image shows the menu selection:

Selecting the Non-Visual Material ID Debug View.

After selecting the Debug View, verify that you receive the following:

Non-visual materials rendered by the RTX Sensor renderer.

The Non-Visual Material ID Debug View shows the material ID for each non-visual material as a color, which can be used to identify the material in the scene. Observe each cube’s color changes compared to the default view to reflect the material ID, which is computed from the combination of non-visual material attributes applied to the visual material applied to the cube.

Note

If you modify non-visual material attributes on a material prim, you must save and reload the stage for the changes to take effect.

Mapping Visual Materials to RTX Sensor Non-Visual Materials (Removed)#

Deprecated since version 5.1: Mapping visual materials to RTX Sensor non-visual materials via a CSV specification (the RtxSensorMaterialMap.csv workflow paired with the rtx.materialDb.rtSensorNameToIdMap and rtx.materialDb.rtSensorMaterialLogs carb settings) is no longer supported — those settings and the CSV file are now ignored. Specify non-visual materials via USD attributes instead — see Specifying Non-Visual Material Attributes above.