PhysxConvexDecompositionCollisionAPI#
Convex decomposition cooking parameters for a Mesh collider with physics:approximation convexDecomposition. Cooking inputs only; nothing here is verified. Two schema fallbacks differ from the consumer’s absent-column seeds.
Applies to:
GprimRequires on the same prim:
PhysicsCollisionAPINo
usd-schemasgate: the consumer reads these columns whenever they exist on the prim, applied or not. Listing the API is still what the producer does and what the builders write.
What USD population writes#
Every declared attribute of an applied collision API is published at its resolved value; all six columns land as their raw fallbacks when unauthored. No derivation.
Columns#
Raw fallback is the USD schema value. Producer writes is what ovstage population puts in the column for a USD stage. Parser default applies on the consumer when the column is absent, in stage units. diverges means writing the raw fallback literally parses differently from omitting the column (the parser default): USD population may well publish that very value for an unauthored attribute, so the marker is about the column being present, not about its value.
Column |
Type |
Units |
Raw fallback |
Producer writes |
Parser default |
If absent |
|---|---|---|---|---|---|---|
|
float32 |
length |
0.001 |
resolved USD value (authored, else raw fallback) |
0.001 |
0.001 (defaultCookedMinThickness) from the ConvexDecompositionCookingParams constructor. |
|
int32 |
none |
32 |
resolved USD value (authored, else raw fallback) |
16 diverges |
16 (defaultCookedMaxHullCount). The USD schema fallback is 32 and the producer publishes it, so a hand-populated stage that omits the column decomposes into at most half as many hulls as USD population. |
|
int32 |
none |
64 |
resolved USD value (authored, else raw fallback) |
64 |
64 (defaultCookedMaxHullVertices), unless the free attribute newton:maxHullVertices is present with a value > 0, which then supplies the limit. |
|
int32 |
none |
500000 |
resolved USD value (authored, else raw fallback) |
100000 diverges |
100000 (defaultCookedVoxelResolution). The USD schema fallback is 500000 and the producer publishes it, so a hand-populated stage that omits the column voxelises five times coarser than USD population. |
|
float32 |
none |
10.0 |
resolved USD value (authored, else raw fallback) |
10.0 |
10.0 (defaultCookedErrorPercentage). |
|
bool8 |
none |
false |
resolved USD value (authored, else raw fallback) |
false |
false: hull points are not projected back onto the source surface. |
Interactions#
PhysicsMeshCollisionAPI: Read by parseConvexDecompositionCookingExt only when the descriptor kind is convexDecomposition. Unlike PhysxConvexHullCollisionAPI there is no usd-schemas gate: the six columns are read whenever they exist on the collider, so free attributes authored without applying the API are honoured.
Known divergences#
note (consumer)
physxConvexDecompositionCollision:maxConvexHulls: Absent column seeds 16 (PhysxCookingParams.h defaultCookedMaxHullCount) while the USD schema fallback published by the producer is 32. Only a hand-populated stage that omits the column is affected; it is a cooking input, not a PhysX default, so the divergence changes the cooked hull count rather than a PhysX object field.note (consumer)
physxConvexDecompositionCollision:voxelResolution: Absent column seeds 100000 (defaultCookedVoxelResolution) while the USD schema fallback published by the producer is 500000. Same class as maxConvexHulls.
Notes#
Cooking APIs on a Mesh cannot be verified by the generated tests: the parameters are consumed by the cooking service and PhysX exposes no getter for them, and the builder writes no mesh arrays.