Breaking Down a Stylized Explosion VFX made in Godot.
by Vicente C.
Published |
43
Share
VFX artist and developer Nolkaloid walked us through one of the explosion effects from their Pyrotechnics VFX Pack in Godot.
VFX artist and developer Nolkaloid broke down one of the explosion effects they made for their Pyrotechnics VFX Pack in Godot.

The effect uses animated noise, vertex displacement, gradient textures, and layered effects to create the explosion effects.
It starts with a blob-shaped mesh displaced through animated noise inside the vertex shader. And to help hide visible seams, the noise is sampled using two overlapping UV sets blended together across the mesh.

The animation comes from offsetting the noise sampling coordinates over time.
float noise_top = texture(
    noise_texture,
    UV + speed * vec2(
        time_direction * TIME + time_offset,
        time_direction * TIME + time_offset
    )
).x;

float noise_bottom = texture(
    noise_texture,
    UV2 - speed * vec2(
        time_direction * TIME + time_offset,
        time_direction * TIME + time_offset
    )
).x;

float noise = mix(
    noise_top,
    noise_bottom,
    smoothstep(
        noise_blending_range,
        noise_blending_range,
        VERTEX.y
    )
);

VERTEX += NORMAL * noise * noise_amplitude;
The same animated noise is later reused to sample gradient textures. This allows the explosion colors to shift across the surface.

To create the hotter glowing areas near the center, the shader computes a sphere projection mask using the fragment direction and view vector. That mask then pushes the gradient sampling toward the brighter parts of the texture.
The full explosion actually blends between three separate gradient textures depending on the current phase of the effect. Near the end, the same noise is also used to gradually break apart and dissolve the explosion.
ALBEDO = mix(
    mix(
        hot_color,
        cold_color,
        clamp(phase * 2.0, 0.0, 1.0)
    ),
    smoke_color,
    clamp((phase - 0.5) * 2.0, 0.0, 1.0)
);

ALPHA = smoothstep(
    dissolve - 0.1,
    dissolve + 0.1,
    heated_noise
);
Nolkaloid also mentioned that the final effect is built from several explosions layered together with slightly offset phases.

Using AnimationPlayer, some parameters are animated, and more effects are added to give the explosion more impact and variation, like shockwave rings and smoke.
If you want to see more from Nolkaloid or check out the Pyrotechnics VFX Pack, the links will be right below. 

Want to learn more?
If you want to learn more about shaders in Godot, The Godot Shaders Bible covers topics like stylized shading, screen-space VFX, lighting, and vertex manipulation through step-by-step examples.

It is a good starting point for developers who want to better understand how shaders work and improve the visuals of their games. Not sure about it yet? Try the free sample.
Jettelly wishes you success in your professional career! Did you find an error? No worries! Write to us at [email protected], and we'll fix it!

Subscribe to our newsletter to stay up to date with our latest offers

© 2026 Jettelly Inc. All rights reserved. Made with ❤️ in Toronto, Canada