usdgeom-mesh-primitive-tessellation#
Code |
VG.017 |
---|---|
Validator |
|
Compatibility |
core usd |
Tags |
🚀 |
Summary#
Avoid tessellating primitive shapes
Description#
Simple shapes that are available as native USD primitives (such as Spheres, Cylinders, etc.) should use those primitive types rather than mesh tessellation when possible. Native primitives provide better memory efficiency and rendering quality when varying primvars/UVs/Texture Coordinates are not needed.
Why is it required?#
Ensures efficient memory usage
Maintains optimal geometric precision
Keeps file sizes manageable
Improves load times
Provides mathematically perfect primitive shapes
Examples#
# Not recommended: Tessellated sphere
def Mesh "TessellatedSphere" {
int[] faceVertexCounts = [4, 4, 4, 4, 4, 4, ...] # Many faces
int[] faceVertexIndices = [...]
point3f[] points = [...] # Many vertices approximating a sphere
}
# Recommended: Native USD primitive
def Sphere "PerfectSphere" {
double radius = 0.5
double height = 2
point3f[] extent = [(-0.5, -1, -0.5), (0.5, 1, 0.5)]
}
How to comply#
Replace tessellated geometry with native USD primitives where possible
Only use mesh tessellation when required for UV mapping or deformation
Re-export from source application using primitive types