usdgeom-mesh-subdivision#
Code |
VG.010 |
|---|---|
Validator |
|
Compatibility |
|
Tags |
Summary#
Use subdivision only when needed for smooth surfaces or displacement
Description#
Subdivision should be used selectively to create smooth surfaces or enable displacement. Using subdivision on flat surfaces or when not needed for visual quality Why is it required?s performance without benefit.
Why is it required?#
Increased computation time
Higher memory usage
Slower scene loading
Reduced rendering performance
Examples#
#usda 1.0
# Invalid: Unnecessary subdivision on simple shape
def Mesh "OverSubdividedCube" {
uniform token subdivisionScheme = "catmullClark"
int[] faceVertexCounts = [4, 4, 4, 4, 4, 4]
int[] faceVertexIndices = [0, 1, 2, 3, ...]
normal3f[] normals = [(0,0,1), (0,0,1), (0,0,1), (0,0,1), ...] # Meshes that have normals should not have subdivision attributes
point3f[] points = [(0,0,0), (1,0,0), (1,1,0), (0,1,0), ...]
}
# Valid: No subdivision for simple shape
def Mesh "SimpleCube" {
uniform token subdivisionScheme = "none"
int[] faceVertexCounts = [4, 4, 4, 4, 4, 4]
int[] faceVertexIndices = [0, 1, 2, 3, ...]
normal3f[] normals = [(0,0,1), (0,0,1), (0,0,1), (0,0,1), ...]
point3f[] points = [(0,0,0), (1,0,0), (1,1,0), (0,1,0), ...]
}
How to comply#
Remove unnecessary subdivision attributes
Fix in source application