vfx-dissolve

Implements a noise-threshold dissolve shader that disintegrates meshes with a glowing edge.

66|4|Updated Feb 26, 2026
One-click install
npx skills add https://github.com/SummerEngine/summer --skill vfx-dissolve-summerengine
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: vfx-dissolve
Source: https://github.com/SummerEngine/summer/tree/main/library/skills/vfx-dissolve
Command: npx skills add https://github.com/SummerEngine/summer --skill vfx-dissolve-summerengine

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Making an object disappear in a game usually means an abrupt queue_free or a flat alpha fade. This Skill provides a complete dissolve effect — a mesh disintegrating with a glowing burning edge — built from a noise-threshold ShaderMaterial that overrides the target's material, plus a GDScript controller that animates the effect. ## Core Features & Use Cases - Dissolve Shader: A spatial shader that samples 3D FBM noise per fragment, discards pixels below a threshold uniform, and tints pixels near the threshold with an emissive edge color for the burning rim. - DissolveController API: Static GDScript methods dissolve_object and materialize_object that collect all MeshInstance3D nodes under a target, inherit the original material's color and texture, tween the threshold, and optionally queue_free when done. - Named Variants: Ready-made parameter sets for enemy-burn-death, thanos-snap, holy-banish, poison-melt, and summon-arrival effects. - Use Case: When an enemy dies, call DissolveController.dissolve_object($Enemy, 1.5) and the enemy burns away with an orange glowing edge over 1.5 seconds before being freed. ## Quick Start Ask your agent to add a dissolve effect so the enemy disintegrates with a glowing edge when it dies.

Frequently Asked Questions about vfx-dissolve

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I make an object dissolve with a glowing edge in a 3D game?

Use a noise-threshold dissolve shader that discards fragments below a threshold uniform and tints pixels near the threshold with an emissive edge color. Animate the threshold from 0 to 1 with a tween so the mesh appears to burn away over the chosen duration.

How do I dissolve a character with multiple meshes?

Recursively collect every MeshInstance3D under the target node and assign each one a ShaderMaterial override with the dissolve shader. The provided controller's _collect_meshes function handles this, and each mesh gets a randomized noise offset so they do not look identical.

Why does my dissolve pattern slide when the camera moves?

In fragment(), VERTEX is in view space, not world or object space. Sampling noise from it directly makes the pattern camera-relative. Transform through INV_VIEW_MATRIX first, then apply inverse(MODEL_MATRIX) for object-space noise that stays attached to the mesh.

Can I use a dissolve shader on a particle system or translucent mesh?

No. The dissolve shader is a spatial shader, not a particles shader, so stop particles instead of dissolving them. Its discard logic works in the opaque pass, so translucent meshes with alpha transparency render incorrectly and need a custom dissolve-with-alpha shader.

What is the difference between dissolve and a simple alpha fade-out?

An alpha fade sets transparency to TRANSPARENCY_ALPHA and tweens albedo_color.a to 0, which is cheap but flat. Dissolve uses per-fragment noise discard with an emissive edge, producing a burning disintegration look at higher shader cost.

Why does my dissolved mesh turn white instead of keeping its texture?

The dissolve shader defaults base_color to white when no texture is wired in. The controller inherits albedo color, texture, metallic, and roughness from the original BaseMaterial3D; meshes using custom shaders need their textures passed manually.