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 hygiene” 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 prim.

core usd

latest+

πŸ”‘

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

core usd

πŸ”‘

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

core usd

latest+

βœ…

Mesh geometry must be manifold

core usd

latest+

βœ…

Mesh topology must be valid

core usd

latest+

βœ…

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

core usd

latest+

βœ…

Repeated occurrences of identically shaped objects should have identical mesh connectivity

core usd

Manual

βœ…

All non-subdivided meshes must have normals.

core usd

latest+

βœ…

Mesh normals values must be valid to produce correct shading.

core usd

βœ…

The winding order of faces in a mesh must correctly represent the orientation (front/back) of the face.

core usd

βœ…

Meshes made from non opaque materials shall have thickness

core usd

β›”

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

latest+

πŸš€

Use efficient mesh boundaries for performance

rtx

πŸš€

Meshes should maintain appropriate scale and boundary volumes

rtx

latest+

πŸš€

Meshes should not overlap unnecessarily

core usd

πŸš€

Meshes should not share the exact same space

core usd

latest+

πŸš€

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

latest+

πŸš€

Each vertex position should be unique

core usd

latest+

πŸš€

Avoid tessellating primitive shapes

core usd

latest+

πŸš€

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

latest+

πŸš€

Boundable geometry should have non-zero extents in at least one dimension.

core usd

πŸš€

Faces should not be lamina.

core usd

latest+

πŸš€

Use appropriate mesh count for scene

rtx