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.
Type chain:
TypedApplicable APIs:
PhysicsMaterialAPI,PhysxMaterialAPI,PhysxSceneAPITransform columns: none, not
Xformable
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.