Performance Validators#
In evaluating data in a USD stage to see what performance improvements can be applied using Scene Optimizer operations, it can be hard to understand what optimizations could be applied to target data. For these types of workflows, Performance Validators have been created to help analyze and indicate any potential problems that may exist within the USD data.
These are new validation rules that use the existing Scene Optimizer operations framework to analyze the data and are exposed through the Asset Validator.
This functionality is enabled through two new extensions that are included in the omni.scene.optimizer.bundle
:
omni.scene.optimizer.analysis
omni.scene.optimizer.validators
Note
For use with Asset Validator CLI omni.scene.optimizer.validators
extension must be enabled: --enable omni.scene.optimizer.validators-108.1.2
Omni:Geometry#
IndexedPrimvarChecker#
Values which are not referenced by the indices in a primvar can be removed with Optimize Primvars operation.
Note
Works on non time varying geometry.
Usd:Performance#
AlmostExtremeExtentChecker#
The world space extents of any Boundable should be within 2^40 units of the origin. Failure to meet this requirement will result in the offending object being discarded by the RTX renderer.
In order to avoid reaching the RTX imposed limit an “almost extreme” check is used that looks for Boundable Prims that are more than 2^38 units from the origin.
Values are compared raw without consideration of linear units
Only the default time code is considered
The value of authored extent will be used for the check, even if they are incorrect
CoincidingGeometryChecker#
Finds cases where one or more meshes from different prims have coinciding geometry that exists within the same world space in the scene. They are tagged using the Coincident Geometry operation.
ColocatedVerticesChecker#
Check the stage to see if any prims have any vertices that are colocated, fixes would be applied using the Mesh Cleanup operation.
DegenerateGeometryChecker#
Uses Scene Optimizer to analyze a scene for degenerate geometry checking for zero extent volume meshes. This uses Remove Small Geometry to analyze and remove any applicable prims.
DuplicateGeometryChecker#
Find geometric prims that are duplicates, uses De-duplicate Geometry operation to create instances when applying fixes.
DuplicateMaterialsChecker#
Uses Scene Optimizer to analyze a scene checking for duplicate materials. Scene Optimizer can then fix by deduplicating them with the Optimize Materials operation.
EmptyLeafChecker#
Checks the stage to see if there are any empty leaf prims such as xforms or scopes. Fixes are applied using the Prune Leaves operation.
FuzzyDuplicateGeometryChecker#
Finds geometric prims that are duplicates within a tolerance. Fixes are applied using the De-duplicate Geometry operation.
HighVertexCountChecker#
Analyzes the stage for meshes with high vertex counts. The different levels are:
High - Vertex count over 100000
Very High - Vertex count over 500000
Extreme - Vertex count over 1000000
NonManifoldChecker#
Analyzes the stage to see if any mesh prims have any nonmanifold geometry. Fixes are applied using the Mesh Cleanup operation. Fixes may also be applied via Manifold Meshes operation.
PrimitiveFitChecker#
Replace meshes with a USD shape prim using the Fit Primitives operation.
SparseMeshChecker#
Finds prims that contain multiple disjoint meshes with a low density relative to the prim’s bounding box. These prims will be either identified as needing to be split or clustered together with other similar sparse meshes within the scene.
RedundantTimeSamplesChecker#
Checks the stage to see if there are any redundant time samples.
ZeroAreaFacesChecker#
Checks the stage to see if any prims have zero area faces. Fixes are applied using the Mesh Cleanup operation.