Material#

UsdShade Material prim. Owns no physics columns: the physics surface comes entirely from PhysicsMaterialAPI and PhysxMaterialAPI applied to it. The prim type itself is never queried by the consumer.

What USD population writes#

The producer gives a Material a row of its own only because PhysicsMaterialAPI is in its physics schema set; a render-only Material (no physics API) gets a row only as a relationship target, with no physics columns. On a physics Material every declared attribute of PhysicsMaterialAPI and, when applied, PhysxMaterialAPI is published at its resolved value.

Interactions#

  • PhysicsMaterialAPI: Materials are enumerated by usd-schemas CONTAINS PhysicsMaterialAPI (probe column physics:dynamicFriction), never by the prim type Material. A Material prim without PhysicsMaterialAPI is invisible to physics: no PxMaterial, and a binding to it leaves the shape on the scene default material. Conversely the type is not checked, so PhysicsMaterialAPI on any Typed prim yields a PxMaterial.

  • MaterialBindingAPI: Binding is irrelevant to creation. Every enumerated material becomes a PxMaterial (runtime type ePTMaterial at the Material path) whether or not any shape binds it. Shapes reach it through material:binding:physics resolved on the shape or its GeomSubsets, see MaterialBindingAPI.

  • PhysicsScene: The scene default material is the PhysicsScene prim’s own resolved material:binding:physics, parsed with the same PhysicsMaterialAPI rules; with no binding it is 0.5 / 0.5 / 0.0 / density unset / average combine modes. A Material whose path is the scene default material path is not created a second time; the scene’s PxMaterial is reused.

Notes#

  • PBD (particle) materials are enumerated by probing the same PhysicsMaterialAPI keys for PhysxPBDMaterialAPI and are out of scope here.