Material Conventions

These conventions apply to all meshes entering the scene — via b3d-loader, b3d-library, or any component that calls register().

Property-Based (automatic from Blender materials)

Property Threshold Effect
alpha > 0.95 snapped to 1.0 Treated as fully opaque (avoids blend cost)
alpha ≤ 0.95 Alpha blend, depth pre-pass, double-sided, excluded from shadow casting
unlit (glTF KHR_materials_unlit) Respected as-is
Transmission > 0 + _mirror Cubemap-based refraction with proper IOR (replaces glTF screen-space)

Name Suffixes (behavioral overrides, not material appearance)

Suffix Effect
_noshadow / -noshadow Mesh doesn't receive shadows
_nocast / -nocast Mesh doesn't cast shadows
_mirror / -mirror Dynamic reflection probe (+ refraction if transmissive)
-ignore Node is disposed on load
_collide* Physics collider (sphere/box/cylinder/mesh)