UE5 / Core Pack

Distortion Pack for UE5

Reusable distortion logic for heat wobble, radial pull, screen-space offsets, layered refraction, and masked distortion.

UE5 first

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.

01

Goal

Target: Reusable distortion logic for heat wobble, radial pull, screen-space offsets, layered refraction, and masked distortion.

02

Use Cases

Core PackHeat haze and fireGood for subtle refraction that suggests heat without smearing the whole screen.
Core PackPortal vortex effectsUse when the center should pull inward while the rim stays readable.
Core PackShield impact and spatial warpingBest for short, masked distortion bursts around a hit or shockwave.

03

Core Blocks

1. Screen offset vector

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.

2. Heat wobble

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.

3. Radial pull

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.

4. Layered noise offsets

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.

5. Masked distortion strength

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

Node Graph Flow

Input dataShape signalAnimateRemap colorControl alphaOutput

Start from the signal

Get a clean black-and-white read first; color, glow, and distortion should only support that read.

Expose decisions

Every exposed value should answer a real art question: how fast, how wide, how bright, how soft.

05

HLSL Equivalent

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

Artist Controls

07

Production Notes

Production check: keep the read clean, then measure cost in the scene where it actually ships.
  • Preview masks by themselves before judging the finished color.
  • Name parameters the way an artist would search for them in a Material Instance.
  • Keep a cheaper instance for background, crowd, or repeated usage.
  • Write down the gotchas while they are still fresh.