Quick answer: Use UpdateMeshSection for same-vertex-count animation. CreateMeshSection reallocates buffers; calling it per frame flickers. Avoid Clear-then-Create; reuse sections.

Here is how to fix Unreal ProceduralMeshComponent visibly flickering when you regenerate geometry every frame. The culprit is recreating sections instead of updating in place.

The Symptom

Per-frame procedural mesh (cloth, water, voxel chunk) flickers with each update.

What Causes This

Create reallocates. CreateMeshSection destroys the old section, allocates new buffers; the gap shows as flicker.

Clear before recreate. Same issue; avoid the empty intermediate state.

The Fix

Step 1: Use UpdateMeshSection.

ProcMesh->UpdateMeshSection(/*sectionIndex*/ 0,
    Vertices, Normals, UVs, VertexColors, Tangents);

Reuses GPU buffers; no reallocation gap.

Step 2: Reserve max size up front. If vertex count varies a little, allocate a larger buffer once and update slices. Avoids periodic Create calls.

Step 3: For changing topology, double-buffer. Maintain two ProceduralMesh actors; create on the inactive one, swap visibility. No flicker visible to player.

Step 4: For voxel chunks, batch updates. Update many sections in one Tick rather than per-chunk per-frame. Reduces buffer churn.

Step 5: Confirm with stat profile. ProceduralMesh sections are in the GPU mesh stats. Watch for spikes that align with flicker.

“Update for same-count. Pre-size buffers. Double-buffer for topology change. Flicker disappears.”

Related Issues

For ISM collision update, see ISM Collision. For Niagara mesh color, see Niagara Mesh Color.

UpdateMeshSection. Pre-size. Double-buffer. Smooth procedural anim.