usdgeom-mesh-empty-spaces#
Code |
VG.004 |
---|---|
Validator |
|
Compatibility |
rtx |
Tags |
🚀 |
Summary#
Use efficient mesh boundaries for performance
Description#
Mesh bounding volume hierarchies (BVH) should be as compact as possible for optimal raytracing performance. Meshes should be organized to minimize empty space in their bounding volumes.
Why is it required?#
Slow raytracing performance
Inefficient BVH structure
Reduced simulation performance
Examples#
# Not recommended: Inefficient mesh organization
def Mesh "InefficientMesh" {
# A single mesh containing two cubes far apart
int[] faceVertexCounts = [4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4]
int[] faceVertexIndices = [
0, 1, 2, 3, # Cube 1 faces
4, 5, 6, 7,
...
24, 25, 26, 27 # Cube 2 faces far away
]
point3f[] points = [
# Cube 1 points
(0,0,0), (1,0,0), (1,1,0), (0,1,0),
...
# Cube 2 points with large gap
(99999990,0,0), (99999991,0,0), (99999991,1,0), (99999990,1,0)
]
}
# Recommended: Efficient mesh organization
def Xform "OptimizedGeometry" {
def Mesh "Cube1" {
int[] faceVertexCounts = [4, 4, 4, 4, 4, 4]
int[] faceVertexIndices = [0, 1, 2, 3, ...]
point3f[] points = [(0,0,0), (1,0,0), (1,1,0), (0,1,0), ...]
}
def Mesh "Cube2" {
int[] faceVertexCounts = [4, 4, 4, 4, 4, 4]
int[] faceVertexIndices = [0, 1, 2, 3, ...]
point3f[] points = [(10,0,0), (11,0,0), (11,1,0), (10,1,0), ...]
}
}
How to comply#
Split large meshes into multiple smaller ones
Group geometry by spatial proximity
Use Scene Optimizer - Split/Merge tool