storm_sheet
Additive upright sheet of slanted rain streaks in patchy gust bands, turned to face the camera about the vertical (`zero_billboard_axis` with world Y). Dozens of them sweep across the scene on the wind, which makes the rain read as weather. On each sheet three layers of fine line…
storm_sheet
Additive upright sheet of slanted rain streaks in patchy gust bands, turned to face the camera about
the vertical (zero_billboard_axis with world Y). Dozens of them sweep across the scene on the
wind, which makes the rain read as weather. On each sheet three layers of fine lines run along a
wind-slanted fall direction; every line has its own length and phase and falls with time, so they
read as individual drops. A value-noise gust pattern, drifting with time, makes the sheet thick in
gusts and threadbare between them. The sheet fades in and out over its life and toward its edges.
The streaks are a cool blue (0.46, 0.56, 0.78) lifted by ambient + flash * flash_gain, scaled by
density and faded with distance by exp(-distance * fog).
The storm graph (storm/storm.procGraph) draws its sheets output with it (additive, flash
from the storm schedule's flash expression, flash_gain 0.9, ambient 0.16, fog 0.005, and
density animated as 0.55 + 0.25 * sin(t * 0.9) + 0.14 * sin(t * 2.3 + 1.7)): up to 90 sheets 46
to 92 wide, born on a wide disc upwind and carried across on the gusts for 7.5 to 9.5 s each. The
graph writes data0 as (life, a random seed, 0, 0). 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 | 0.3 | Base brightness of the streaks (range 0 to 8). |
density | float | 1.0 | Multiplies the streaks; the storm graph swells it with the gusts (range 0 to 8). |
fog | float | 0.004 | Distance fade density (range 0 to 0.1). |
vertexBoundsDilation | float | 46 | 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 to 1: the fade in and out. |
data0.y | Per-sheet seed: offsets the lines and the gust pattern. |
Scoped to this part · feeds back into the world's score.