Quick answer: Enable Generate Mesh Distance Fields on each static mesh and Affect Distance Field Lighting on each placed actor. Niagara GPU collision uses the scene’s distance field, not traditional physics.

A GPU particle system spawns sparks that should bounce off walls. The Collision module is configured. Sparks pass through walls as if nothing is there. GPU particles don’t do physics queries; they collide against the Distance Field.

GPU vs CPU Collision

Niagara emitters have CPU and GPU simulation modes. Collision behaves differently:

Enable SDF Contribution

For each static mesh asset that should collide:

  1. Open the static mesh asset.
  2. In Build Settings, enable Generate Mesh Distance Fields.
  3. Apply Changes; let it rebuild.

For each placed StaticMeshActor in the level:

  1. Select the actor.
  2. Details → Rendering → Affect Distance Field Lighting = true.

Project-Level Distance Field

In DefaultEngine.ini:

[/Script/Engine.RendererSettings]
r.GenerateMeshDistanceFields=True
r.DistanceFieldShadowing=True

Without these, the engine doesn’t allocate the SDF buffers globally. GPU collision can’t function.

Verify with SDF Visualizer

In the viewport: Show → Visualize → Mesh Distance Fields. The scene renders as the SDF representation. Walls that should collide should appear as solid shapes. Missing walls = SDF contribution disabled on those meshes.

Particle Collision Quality

SDF is a coarse approximation. Tiny features (mesh detail less than ~10 cm) get smoothed away. For precise collisions on small objects, use CPU emitters with the physics-trace Collision module.

Verifying

Trigger the effect near a wall. Sparks should bounce off correctly. View the SDF in Show menu to confirm the wall is captured. If the SDF is empty where the wall should be, the mesh’s SDF settings are off.

“GPU Niagara collision is SDF-based. Enable distance field generation on meshes and on the project.”

For dynamic geometry, SDF isn’t updated continuously — GPU particles ignore dynamically-moved actors. Switch to CPU emitter for moving collider scenarios.