material-consistency#
Code |
NVM.005 |
|---|---|
Validator |
|
Compatibility |
|
Tags |
Summary#
Properties must be consistent with visual materials
Description#
Non-visual material properties must be consistent with the visual material properties. For example, a material that appears metallic in visual rendering should have appropriate non-visual attributes that reflect its metallic nature.
Why is it required?#
Ensures consistency between visual and non-visual representations
Prevents conflicting material properties
Maintains realistic material behavior across different sensor types
Examples#
# Invalid: Inconsistent material properties
def Material "InconsistentMaterial" {
token outputs:surface.connect = </InconsistentMaterial/Surface.outputs:surface>
token omni:simready:nonvisual:base = "plastic" # Claims to be plastic
token omni:simready:nonvisual:coating = "none"
token[] omni:simready:nonvisual:attributes = []
def Shader "Surface" {
uniform token info:id = "UsdPreviewSurface"
float inputs:metallic = 1.0 # But visually appears metallic
color3f inputs:diffuseColor = (0.8, 0.8, 0.8)
}
}
# Valid: Consistent material properties
def Material "ConsistentMaterial" {
token outputs:surface.connect = </ConsistentMaterial/Surface.outputs:surface>
token omni:simready:nonvisual:base = "steel" # Matches visual metallic appearance
token omni:simready:nonvisual:coating = "paint"
token[] omni:simready:nonvisual:attributes = []
def Shader "Surface" {
uniform token info:id = "UsdPreviewSurface"
float inputs:metallic = 1.0
color3f inputs:diffuseColor = (0.8, 0.8, 0.8)
}
}
How to comply#
Ensure that non-visual material attributes accurately reflect the visual appearance and properties of the material. For example:
Metallic-looking materials should use metal base types
Transparent materials should use appropriate glass or clear material types
Painted surfaces should specify appropriate coating attributes