UE5 Screen Space Particle Dissolve
A screen-space dissolve effect with particle bursts for stylized character deaths, inspired by the technique used in Epic's Matrix Awakens demo. It's pretty straightforward technique-wise - expanding circle dissolve using step functions, particles projected onto the mesh bounds. Simple approach but effective visually, and performance stays reasonable even from different camera angles.
Table of Contents
Screen Space Bounds
The first step is calculating a 2D bounding box in screen space from the 3D bounding box of the target mesh. I get the mesh's 8 bounding box corners in world space, project each corner to clip space using the View.WorldToClip matrix, then find min/max X and Y to get the screen rectangle.
This gives me the area on screen where the character appears, which I use for both the dissolve origin and particle spawning region.
// For each of the 8 bounding box corners: float3 target = Center + HalfExtent * dir[i]; float4 clip = mul(float4(target, 1), View.WorldToClip); minX = min(minX, clip.x); maxX = max(maxX, clip.x); // ... same for Y
Screen bounds visualization projected onto the mesh
Dissolve Material & Timing
The dissolve is driven by animating a threshold value. Each pixel compares its distance from a center point against this threshold using a step function - as the threshold increases, more pixels pass the test and get clipped.
The dummy mesh (with stencil value) dissolves with a slight delay from the main mesh. This timing offset is what creates the visible stencil region at the dissolving edge - the area where the main mesh has already disappeared but the dummy mesh hasn't yet.
I add noise to the threshold comparison to break up the edge. Without noise you get a clean geometric cutoff; with noise it looks more organic. The noise tiling is adjustable so I can control how chunky or smooth the edge breakup looks.
Edge emissive adds a glow at the dissolve boundary - same technique as most dissolve effects, just masking based on proximity to the threshold value.
Particle Spawning & Stencil Filtering
The Niagara emitter runs on GPU sim (required to read GBuffer). Particles spawn within the screen-space bounding box, then I convert each particle's clip space position back to world coordinates using View.ClipToWorld. This places particles in 3D space but aligned to the screen rectangle.
The key trick is the two-mesh stencil setup: I overlap two copies of the target mesh. The dummy mesh has a Custom Depth Stencil Value set (I used 2). The dummy dissolves with a slight delay from the main mesh, so the stencil buffer shows only the dissolving edge region.
In Niagara, I read the GBuffer's stencil value at each particle's screen position. If it matches the dummy mesh's stencil value, the particle stays alive. Otherwise it gets killed. This filters particles to only appear at the dissolving edge.
// Particle filtering in Niagara: // 1. Convert world position to screen UV // 2. Sample stencil value from GBuffer // 3. If stencil == targetValue → alive // 4. Otherwise → kill particle
I experimented with spawning directly from mesh triangles, but the particle placement ends up uneven depending on vertex density. The screen-space bounds method gives more consistent distribution.
Stencil mask visualization - particles only survive where stencil value matches
Assets & Integration
The models are from Unreal Engine free assets - I don't own them and didn't make them. Most of these assets have VFX input functions built into their materials, which is great for pipeline work. I can plug my effect in without touching the original material.
When I do need to make changes, I duplicate the material and edit the copy. Never touch the source.
Like all my effects, it looks simple but the technique is solid. I tested from different camera angles to make sure performance stays reasonable. Pretty straightforward approach overall, but it gets the job done and looks good in action.
Reference & Inspiration

Agent death effect from The Matrix Awakens (Epic Games)
The Matrix Awakens: Creating the Vehicles and VFX | Tech Talk | State of Unreal 2022 - Epic explains the technique at ~25:57
HeyYo CG - Reproduce Agent Death Effect in UE5 Matrix Demo - Great breakdown by yohanashima
Tech Stack
Step Function
Dissolve mask
Min/Max Bounds
Screen projection
Dot Product
Particle placement
Noise Tiling
Edge breakup