Geometry#

Overview#

This capability provides requirements for the rendering of 3D surfaces in visualization systems, proper mesh topology and geometry for physics simulation, as well as placement, orientation and positioning.

Summary#

  • Geometry is most often represented as a UsdGeomMesh prim.

  • Performance and proper β€œtopological hygene” is a key consideration for geometry and an important focus of this capability.

  • USDGeom also provides other types of geometry, but this documentation focuses on meshes.

  • Various other geometry types in USD are also β€œpoint based” and may share the same requirements as meshes.

Requirements#

Tags

Summary

Compatibility

Validator

πŸ”‘

Assets must contain at least one Imageable Geometry

core usd

πŸ”‘

Asset transforms shall be defined such that the asset is correctly positioned and oriented at the origin (0,0,0).

core usd

πŸ”‘

Transforms and pivots should be positioned at intuitive points on the asset to ensure expected behavior during placement and rotation.

core usd

Manual

πŸ”‘

All geometry shall be represented as mesh primitives using the UsdGeomMesh schema.

core usd

βœ…

Mesh geometry must be manifold

core usd

latest+

βœ…

Mesh topology must be valid

core usd

latest+

βœ…

Meshes should be positioned using transformations, not by embedding positions into point positions.

core usd

βœ…

Repeated occurrences of identically shaped objects should have identical mesh connectivity

core usd

Manual

βœ…

Normals should be authored to accurately represent the intended surface appearance.

core usd

Manual

β›”

UsdGeomMesh (that is not utilizing subdivision) needs to have normal attributes.

rtx

β›”

World space bounds must not exceed RTX limit.

rtx

latest+

πŸš€

Boundable geometry primitives should have valid extent values.

openusd

latest+

πŸš€

Only include geometry that contributes to visualization or simulation

openusd

πŸš€

Use efficient mesh boundaries for performance

rtx

πŸš€

Meshes should maintain appropriate scale and boundary volumes

rtx

πŸš€

Meshes should not overlap unnecessarily

core usd

πŸš€

Meshes should not share the exact same space

core usd

πŸš€

Use indexed primvars when values are repeated

core usd

latest+

πŸš€

Do not subdivide meshes with Normals.

core usd

latest+

πŸš€

Only include primvars that are actively used

core usd

latest+

πŸš€

Combine small meshes into larger ones where appropriate

core usd

πŸš€

Use appropriate tessellation density for geometry

core usd

πŸš€

Use time samples only when attribute values change

core usd

πŸš€

Each vertex position should be unique

core usd

latest+

πŸš€

Avoid tessellating primitive shapes

core usd

πŸš€

Mesh topology should be without unused vertices, edges, or faces.

core usd

latest+

πŸš€

Faces should have non-zero area.

core usd

latest+

πŸš€

The values of points must not exceed the limit at which a given precision can be represented using 32-bit floats.

core usd

latest+

πŸš€

Use appropriate vertex count for geometry

core usd

πŸš€

Meshes should use instancing if they are identical apart from their world space location

core usd

πŸš€

Use appropriate mesh count for scene

rtx