material-attributes#

Code

NVM.001

Validator

Compatibility

Tags

Summary#

Materials must specify additional “non-visual” material attributes

Description#

Every geometry prim with a computed purpose of “render” or “default” must have non-visual material attributes assigned per visual material assigned. This includes the omni:simready:nonvisual:attributes attribute which is a token array containing additional material properties that affect sensor response.

Why is it required?#

  • Enables accurate sensor simulation (radar, lidar, thermal imaging)

  • Provides material properties that affect sensor response

  • Required for non-visual sensor compatibility

Examples#

# Invalid: Missing non-visual attributes
def Material "BasicMaterial" {
    token outputs:surface.connect = </BasicMaterial/Surface.outputs:surface>
    
    def Shader "Surface" {
        uniform token info:id = "UsdPreviewSurface"
        # Missing omni:simready:nonvisual:attributes
    }
}

# Valid: With non-visual attributes
def Material "SensorMaterial" {
    token outputs:surface.connect = </SensorMaterial/Surface.outputs:surface>
    token omni:simready:nonvisual:base = "metal"
    token omni:simready:nonvisual:coating = "paint"
    token[] omni:simready:nonvisual:attributes = ["emissive", "retroreflective"]
    
    def Shader "Surface" {
        uniform token info:id = "UsdPreviewSurface"
    }
}

How to comply#

Add the omni:simready:nonvisual:attributes attribute to materials bound to geometry prims. The attribute should be a token array containing valid values from the allowed list.

For More Information#