usdgeom-mesh-lamina-faces#

Code

VG.032

Validator

latest+

Compatibility

core usd

Tags

🚀

Summary#

Faces should not be lamina.

Lamina faces are those that share all the same vertices. This means there are two or more identical overlapping faces. This is wasteful, and can also cause rendering artifacts if the faces have different materials. They can be created in a variety of ways, for example accidentally duplicating faces on a mesh, merging objects with coincident faces and then merging vertices, or modeling operations like booleans on meshes that have coincident faces.

Why is it required?#

  • Improves memory efficiency

  • Prevents rendering artifacts

  • Avoids physics simulation issues

Examples#

#usda 1.0

# Invalid: Lamina faces
def Mesh "planeWithLaminaFaces" ()
{
    int[] faceVertexCounts = [4, 4]
    int[] faceVertexIndices = [0, 1, 3, 2, 0, 1, 3, 2]
    point3f[] points = [(-1, 0, 1), (1, 0, 1), (-1, 0, -1), (1, 0, -1)]
}

# Valid: No lamina faces
def Mesh "planeWithNoLaminaFaces" ()
{
    int[] faceVertexCounts = [4]
    int[] faceVertexIndices = [0, 1, 3, 2]
    point3f[] points = [(-1, 0, 1), (1, 0, 1), (-1, 0, -1), (1, 0, -1)]
}

How to comply#

  • Clean up meshes using Scene Optimizer

  • Remove lamina faces

  • Fix mesh generation settings

For More Information#