Build a Stylized Dissolve Shader
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.
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
Milestones
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.
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.
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.
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.
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.
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.