material-consistency#
Code |
NVM.005 |
---|---|
Validator |
|
Compatibility |
rtx |
Tags |
✅ |
Summary#
Properties must be consistent with visual materials
Description#
Non-visual material attributes must be consistent with the visual material attributes of the same material. The non-visual attributes should accurately represent the physical characteristics implied by the visual material.
Why is it required?#
Ensures accurate sensor simulation
Prevents conflicting material definitions
Maintains physical plausibility
Examples#
# Invalid: Inconsistent attributes
def Material "GlassMaterial" (
prepend apiSchemas = ["MaterialBindingAPI"]
)
{
# Visual material shows glass
token outputs:surface.connect = </Materials/GlassMaterial/PBRShader.outputs:surface>
# But non-visual attributes say it's metal
token omni:simready:nonvisual:base = "aluminum"
token omni:simready:nonvisual:coating = "none"
}
# Valid: Consistent attributes
def Material "GlassMaterial" (
prepend apiSchemas = ["MaterialBindingAPI"]
)
{
# Visual material shows glass
token outputs:surface.connect = </Materials/GlassMaterial/PBRShader.outputs:surface>
# Non-visual attributes match
token omni:simready:nonvisual:base = "clear_glass"
token omni:simready:nonvisual:coating = "none"
token[] omni:simready:nonvisual:attributes = ["visually_transparent"]
}
How to comply#
Match non-visual attributes to visual appearance
Include appropriate attributes (e.g., visually_transparent for glass)
Ensure physical plausibility of material definitions