usdgeom-zero-extent#

Code

VG.030

Validator

Compatibility

core usd

Tags

🚀

Summary#

Boundable geometry should have non-zero extents in at least one dimension.

Zero extent geometry wastes memory and may cause simulation problems.

Why is it required?#

  • Memory inefficiency

  • Rendering artifacts

  • Physics simulation issues

Examples#

#usda 1.0

# Invalid: Zero extent
def Mesh "ZeroExtentMesh" {
    float3[] extent = [(0, 0, 0), (0, 0, 0)]
    int[] faceVertexCounts = [4]
    int[] faceVertexIndices = [0, 1, 2, 3]
    point3f[] points = [
        (0,0,0),
        (0,0,0),
        (0,0,0),
        (0,0,0)
    ]
}

# Valid: Mesh has nonzero extent
def Mesh "NonzeroExtentMesh" {
    float3[] extent = [(0, 0, 0), (1, 1, 0)]
    int[] faceVertexCounts = [4]
    int[] faceVertexIndices = [0, 1, 2, 3]
    point3f[] points = [
        (0,0,0),
        (1,0,0),
        (1,1,0),
        (0,1,0)
    ]
}

How to comply#

  • Remove zero extent geometry from scene

  • Fix geometry generation settings

For More Information#