surf_cloudfill.computeShader
Fills the CLOUDSURF part's cumulus bank, one invocation per voxel. A grid of cells in world x/z hosts one cauliflower tower each — a stack of lobes whose centres, radii and squash come from the cell hash, soft-unioned into one billowing mass and gnawed by fbm so the silhouette br…
surf_cloudfill
Fills the CLOUDSURF part's cumulus bank, one invocation per voxel. A grid of
cells in world x/z hosts one cauliflower tower each — a stack of lobes whose
centres, radii and squash come from the cell hash, soft-unioned into one
billowing mass and gnawed by fbm so the silhouette breaks into florets. The
scroll parameter slides the grid through the box, so the parade passes the
rider; towers grow with distance, so the near flank stays readable while the
horizon bank stays massive.
Each voxel shades itself: the field sampled a step along the sun vector gives the transmittance carrying the dawn ramp — lilac in the shadowed core, cream-gold on the backlit rim, warmth spilled onto the crowns.
preseed/parts/p_surf.module owns this shader: it holds the reference, packs
the U run each frame, and hands both to preseed/volume.module to dispatch.
Bindings
| name | kind | what it is |
|---|---|---|
vol | storage3d (rgba16f) | the volume written — RGB emission, A density |
U | buffer (read, f32) | the part's fill parameters |
U (f32 indices): 0 time · 1 scroll z · 2..4 aabb min · 5..7 aabb max ·
8 coverage · 9 density · 10..12 sun vector · 13 warmth · 14 light gain ·
15 detail.
Scoped to this part · feeds back into the world's score.