storm_puff
Alpha-blended smoke puff on a camera-facing card (`zero_billboard`), with wispy domain-warped edges, a sooty body, blue-white flash lighting and an ember glow while it is young. A domain-warped four-octave value noise, drifting with time and offset by the seed, erodes a round bod…
storm_puff
Alpha-blended smoke puff on a camera-facing card (zero_billboard), with wispy domain-warped edges,
a sooty body, blue-white flash lighting and an ember glow while it is young. A domain-warped
four-octave value noise, drifting with time and offset by the seed, erodes a round body. The puff
fades in over the first 10 percent of its life and out between 0.45 and 1. Its dense core reads as
soot (0.030, 0.034, 0.045) and its thin edges pick up a slate sky (0.13, 0.15, 0.20), scaled by
ambient. The storm's flash adds blue-white (0.62, 0.70, 1.0) light times flash * flash_gain,
and the heat lane adds an orange ember glow (1.0, 0.36, 0.06). The alpha is the body times the
fades, the lane's opacity scale and density.
The storm graph (storm/storm.procGraph) draws its smoke output with it (transparent, flash
from the storm schedule's flash expression, flash_gain 1.7, ambient 1.0, density 0.8): smoke
rising from every strike, dragged downwind and billowing as it ages. The graph writes data0 as
(life, a random seed, a heat ramp that falls from 1 to 0 by 0.28 of the life, 0.85). In the Procgen Effects Showcase world, the fx_storm scene plays the graph.
The shader includes @builtin::shaderModules.billboard.
Properties
| Property | Type | Default | Meaning |
|---|---|---|---|
flash | float | 0.0 | Current strike brightness (range 0 to 8). |
flash_gain | float | 1.0 | Multiplies flash (range 0 to 20). |
ambient | float | 1.0 | Multiplies the soot-and-sky shade (range 0 to 8). |
density | float | 0.9 | Multiplies the alpha (range 0 to 4). |
vertexBoundsDilation | float | 6.5 | How far the vertex hook moves a vertex past the mesh, in world units: the culling bounds grow by it so a moved vertex stays inside them. |
Lanes
| Lane | Carries |
|---|---|
data0.x | Life, 0 born to 1 dead. |
data0.y | Per-puff seed. |
data0.z | Heat, 0 to 1: the ember glow. |
data0.w | Opacity scale; below 0.003 the puff is discarded. |
Scoped to this part · feeds back into the world's score.