Core Pack
UE5 is the source of truth here. Keep the graph readable first, then branch into project-specific versions only when the base is proven.
UE5 / Core Pack
Reusable distortion logic for heat wobble, radial pull, screen-space offsets, layered refraction, and masked distortion.
UE5 is the source of truth here. Keep the graph readable first, then branch into project-specific versions only when the base is proven.
01
02
03
Treat this as a named building block, not a hidden math island. It should be easy to preview, tune, and reuse.
Why: small readable parts make the final graph easier to review and extend.
Keep the noisy part weaker than the main shape. Noise should add life, not become the design.
Why: over-contrasted noise is one of the fastest ways to make a material feel unfinished.
Keep the center, radius, and edge width controllable. Circular effects fall apart quickly when those values are buried.
Why: radial signals are reused across portals, shields, runes, and hit pulses.
Keep the noisy part weaker than the main shape. Noise should add life, not become the design.
Why: over-contrasted noise is one of the fastest ways to make a material feel unfinished.
Keep the noisy part weaker than the main shape. Noise should add life, not become the design.
Why: over-contrasted noise is one of the fastest ways to make a material feel unfinished.
04
Get a clean black-and-white read first; color, glow, and distortion should only support that read.
Every exposed value should answer a real art question: how fast, how wide, how bright, how soft.
05
float shaped = smoothstep(threshold - softness, threshold + softness, inputMask);
float edge = shaped * (1.0 - smoothstep(edgeWidth, edgeWidth + softness, abs(inputMask - threshold)));
return float2(shaped, edge);06
07