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

πŸ”‘

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

core-usd

latest+

πŸ”‘

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+ 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

Manual

βœ…

All non-subdivided meshes must have normals.

core-usd

latest+

βœ…

Mesh normals values must be valid to produce correct shading.

core-usd

latest+ latest+

βœ…

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

core-usd

latest+ latest+

βœ…

Meshes made from non opaque materials shall have thickness

core-usd

βœ…

ParticleField3DGaussianSplat prims must satisfy schema and data consistency rules required for interoperable 3D Gaussian splat assets. General stage metadata (for example default prim, meters per unit, and up axis) is validated by other requirements in the geometry and layout capabilities.

core-usd

latest+

β›”

World space bounds must not exceed RTX limit.

rtx

latest+

πŸš€

Boundable geometry primitives should have valid extent values.

open-usd

latest+

πŸš€

Only include geometry that contributes to visualization or simulation

open-usd

latest+

πŸš€

Use efficient mesh boundaries for performance

rtx

latest+

πŸš€

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+ latest+

πŸš€

Do not subdivide meshes with Normals.

core-usd

latest+

πŸš€

Only include primvars that are actively used

core-usd

latest+

πŸš€

Remove meshes from the scene that are below the extent size threshold.

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+ latest+

πŸš€

Faces should have non-zero area.

core-usd

latest+ latest+

πŸš€

The values of the points attribute 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

latest+

πŸš€

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

core-usd

latest+

πŸš€

Repeated occurrences of identically shaped objects should have identical mesh connectivity

core-usd

latest+

πŸš€

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

core-usd

latest+

πŸš€

Faces should not be lamina.

core-usd

latest+

πŸš€

Do not author unused texture coordinates.

core-usd

latest+

πŸš€

Avoid invisible prims when deactivation is more appropriate.

core-usd

latest+

πŸš€

Use appropriate mesh count for scene

rtx

latest+