TA logoThe Technical Artist
Home/Projects/The Dissolve Effect
project - starter
shaders
~a day

The Dissolve Effect

Starterproject~3 min readreviewed 2026-07-05

The portfolio-classic shader: an object that burns away along a noise edge with a glowing rim. Every part is one of the five HLSL functions - which makes it the perfect first shader to build and understand, not just copy.

LevelStarter
Time~a day
TechAny engine / node graph
ProvesShader fundamentals
DeliverableA material + breakdown

NOthe brief

Build a dissolve material: driven by a single Progress value from 0 to 1, the surface should erode away along the contours of a noise texture, with a bright glowing band at the dissolve frontier. Slide Progress and the object burns away like paper.

It looks impressive and it's genuinely simple - which is exactly why it's the right first shader. The goal isn't just a working effect; it's being able to explain every node. A dissolve you can narrate beats a fancier effect you copied and can't.

NOconstraints

  • One driving parameter. A single scalar Progress (0-1) controls the whole effect. No manual keying of five values.
  • The edge is emissive, not just coloured. The glowing band should read as light - push it past 1.0 so bloom catches it.
  • Understand each node. If you used it, you can say what it does and why. This constraint is on you, and it's the one that matters.
  • Tileable, seamless noise. No visible repeat seam in the dissolve pattern.

NOacceptance criteria

  • At Progress = 0 the object is whole; at 1 it's fully gone.
  • The dissolve follows the noise pattern - it eats holes in the middle, it doesn't just wipe top-to-bottom.
  • A visible glowing edge tracks the boundary as it moves.
  • No hard seam in the noise across the surface.
  • The edge colour and width are adjustable without rewiring the graph.
  • You can talk through the whole graph, node by node, without notes.

NOsuggested approach

  1. Get a noise value on the surface. Sample a seamless noise texture (the site's noise generator makes one). This gives you a 0-1 value per pixel.
  2. Cut with a step. step(noise, Progress) gives you 1 where the surface should be gone. Wire that into opacity mask and watch it dissolve. That's the core effect already.
  3. Find the frontier. A thin band where noise is near Progress - a smoothstep around the threshold - is your glowing edge.
  4. Make the edge glow. Multiply the edge band by a colour, overdrive it past 1.0, feed it to emissive.
  5. Expose the knobs - edge colour, edge width - as parameters so it's art-directable.
The functions you need

HLSL From Zero builds this exact dissolve from the five core functions (step, smoothstep, lerp, and friends) and explains each line. Whether you build in a node graph or in code, the logic is identical - do it once each way if you want to really own it.

NOstretch goals

  • Directional dissolve: bias the effect so it burns from one side, by adding a gradient to the noise before the threshold.
  • Ember particles spawned at the dissolve edge (if your engine's VFX system is handy) - now it's a full effect, not just a material.
  • A "materialize" mode - run it in reverse so the object assembles instead of dissolves. One 1 - away.
  • World-space noise so the pattern stays put as the object moves, instead of swimming with the UVs.

NObreakdown template

Shaders live or die on the visual, so lead with motion - a looping clip of Progress sweeping 0->1. Then explain the graph, because explaining it is the thing that proves you didn't just paste it.

README / breakdown skeleton
## Dissolve Shader

**Effect:** [looping GIF of Progress sweeping 0 -> 1, edge glowing]

**How it works, in one breath:** a seamless noise texture is thresholded
against a Progress value with step() for the cutout, and a smoothstep band
around that threshold drives an over-bright emissive edge.

**The graph:** [annotated screenshot - label the noise, the step, the
smoothstep edge, the emissive multiply]

**The dead end:** [e.g. "first attempt wiped top-to-bottom because I used
UV.y instead of noise - here's what that looked like"]

**Knobs exposed:** edge colour, edge width, progress.

**What I'd add:** [embers / materialize mode / world-space noise]

That "one breath" explanation line is worth practising out loud - it's almost exactly what an interviewer will ask you to do when this piece comes up.