โ† All examples

godot shaders

Procedural fire on a camera-facing card

Fire on a single quad that always faces the camera: rising distorted noise shaped into a flame silhouette and coloured through a heat ramp, with no textures or particles.

Recorded render of Procedural fire on a camera-facing card

What this component contains

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

How it works

Shader type
spatial
Render modes
unshaded, blend_add, cull_disabled, depth_draw_never, shadows_disabled
Parameters
core_color (vec4 = 1, 0.95, 0.6, 1), mid_color (vec4 = 1, 0.5, 0.08, 1), tip_color (vec4 = 0.6, 0.05, 0.02, 1), rise_speed (float = 1.6), noise_scale (float = 5), distortion (float = 0.35), flame_width (float = 0.55), flame_height (float = 0.9) and 1 more
Use it on
A QuadMesh placed where the fire burns; its bottom edge is the base of the flame.
Result
A flickering flame with a pale core and red tips that faces the camera from every angle.
Renderers
compatibility: compiled and rendered, forward plus: not verified, mobile: not verified
Placement
res://baltor/godot_shaders/fire_billboard/

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

A single card: seen from directly above the flame flattens. Additive blending means it cannot occlude and looks weak on bright backgrounds. It casts no light; add an OmniLight3D for that.