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?#
Unnecessary memory usage
Potential loss of geometric precision
Larger file sizes
Slower load times
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