← GUIDED PROJECTS
4-6 hours · Intermediate

Build a Stylized Dissolve Shader

IntermediateNeeds: Smoothstep, Masks and Readable EdgesNeeds: Coordinate Spaces and the MVP Chain
Sign in to tick off milestones and publish this to your showcase.Sign in

The brief

Create a stylized dissolve effect that preserves silhouette readability, exposes exactly three artist controls (progress, edge width, edge colour), and stays under 60 shader instructions with no more than 2 texture samplers.

Deliverable: A production-ready dissolve material with three artist controls, a burning edge, and a documented shader cost budget.

Starter assets

Start from any unlit or lit surface shader on a mesh with clean UVs. You need one noise source: a tiling noise texture (512px, single channel) or a procedural gradient noise function. Nothing else.

Performance budget

  • 60 shader instructions or fewer in the fragment stage.
  • Maximum 2 texture samplers.
  • No visible edge aliasing at 3m and at 30m from the camera.

Engine instructions

Shader Graph: Noise → Step/Smoothstep against a Progress property, output to Alpha Clip Threshold. Use a second Smoothstep with an offset for the edge into Emission. Read Instructions in the graph's shader inspector.

Milestones

MILESTONE 01

Threshold the noise

Sample your noise in object space so the pattern stays locked to the mesh. Compare it against a progress parameter and clip or discard below the threshold.

CHECKPOINT Dragging progress from 0 to 1 fully dissolves the mesh, and the pattern does not swim when the object moves.
MILESTONE 02

Add the burning edge

Build a second, slightly offset threshold and take the difference to isolate a band around the dissolve front. Drive an emissive colour with it.

CHECKPOINT A visible glowing band follows the dissolve front at every progress value, including 0.02 and 0.98.
MILESTONE 03

Make the edge resolution-stable

Replace the fixed edge width with one derived from fwidth of the noise field, then blend that with the artist width parameter so wide stylized edges are still possible.

CHECKPOINT Edge softness looks identical at 3m and 30m in a fly-through capture.
MILESTONE 04

Protect the silhouette

Bias the threshold by a mask that keeps silhouette-defining regions solid longer — vertex colour, an authored mask, or a curvature/AO channel.

CHECKPOINT At 50% progress the object is still recognisable in silhouette from three angles.
MILESTONE 05

Budget and reduce

Read the compiled instruction and sampler counts. Pack any extra masks into unused channels and remove redundant normalizations until you are inside budget.

CHECKPOINT Instruction count and sampler count recorded, both inside the stated budget.
MILESTONE 06

Document it

Capture a turntable at 0/25/50/75/100% progress, a shot of the artist parameters, and the before/after cost numbers. Write the breakdown using the template below.

CHECKPOINT A complete write-up exists with captures, numbers and a reflection.

Troubleshooting

The dissolve pattern slides across the surface when the object moves.
You are sampling in world space. Switch to object space or UVs.
The edge disappears at progress 0 or 1.
Clamp the two thresholds so the band never falls entirely outside 0..1; offset inward rather than outward.
Hard, jagged dissolve edge.
You used step instead of smoothstep, or the smoothstep range is narrower than one pixel of the noise field.
Instruction count is far over budget.
Look for repeated noise samples and per-pixel normalizations that could be done once, and for a masked branch that could be a lerp.

Assessment rubric

Portfolio write-up template

One-line summary
What it is and why it exists, in a sentence a recruiter understands.
Your role and scope
What you personally built, and what was given to you.
Engine / software and version
e.g. Unreal 5.4, Houdini 20.5, Unity 6 URP.
Technical breakdown
The approach, the key maths or nodes, and one alternative you rejected.
Performance metrics
Instruction count, samplers, GPU ms, particle counts, cook time — with how you measured.
Reflection
What you would do differently, and the trade-off you are least happy with.
Repository or breakdown link
Optional link to code, a post, or a video.

Courses behind this project