โ† All examples

godot shaders

Heat haze distortion card

Place a card over a hot area to shimmer the scene behind it: scrolling noise offsets the screen texture, rising faster toward the top, faded at the card edges and by distance.

Recorded render of Heat haze distortion card

What this component contains

  • ATTRIBUTION.md
  • LICENSE
  • README.md
  • component.json
  • demo.tscn
  • heat_haze_distortion.gdshader
  • inspect_shader.py
  • material.tres
  • preview.png
  • test_package.py
  • verification/native.json

How it works

Shader type
spatial
Render modes
unshaded, cull_disabled, depth_draw_never, shadows_disabled
Parameters
screen_texture (sampler2D), strength (float = 0.018), noise_scale (float = 9), rise_speed (float = 1.4), edge_softness (float = 0.25), top_fade (float = 0.6), distance_falloff (float = 0.15), tint_amount (float = 0.04)
Use it on
A QuadMesh or other card placed over the hot area.
Result
A shimmering patch where the scene behind ripples upward.
Renderers
compatibility: compiled and rendered, forward plus: not verified, mobile: not verified
Placement
res://baltor/godot_shaders/heat_haze_distortion/

Recorded checks

godot 4.7.2.stable.official.ed1daf0bf

  • contract_static
  • engine_run
  • engine_log_clean
  • shader_in_scene
  • capture_written
  • render_not_uniform
  • shader_changes_pixels

Limits to consider

Screen-space: it cannot show what is off screen and cannot distort other transparent objects. A card seen edge-on disappears. The distortion is an artistic noise field, not a refraction calculation.