Dissolve Shader Edge Width
Dissolve progress and the burning edge use different masks. Noise below the threshold disappears. A narrow band just above it remains visible and is tinted as the hot edge. Tinting the whole surviving region produces a color change rather than a burning boundary.
Fix the problem and environment
Dissolve progress and the burning edge use different masks. Noise below the threshold disappears. A narrow band just above it remains visible and is tinted as the hot edge. Tinting the whole surviving region produces a color change rather than a burning boundary.
The controlling code
float n=fbm(uv*9.0);
float keep=step(progress,n);
float edge=keep*(1.0-smoothstep(progress,progress+edgeWidth,n));
vec3 color=background*(1.0-keep)+original*keep+fireColor*edge;
Verify in order
Display keep alone, then edge alone to verify a narrow band, and finally compose color. Freeze the noise seed while changing threshold so the boundary is comparable.
Scope and common mistakes
Noise may not reach exactly zero and one. Handle progress endpoints explicitly or remap using its actual range when complete appearance/disappearance is required.