zyme_froth
The bioluminescent ferment of FIRST LIGHT: RESOWN — the one cold thing in a picture of warm stone and amber dawn.
zyme_froth
The bioluminescent ferment of FIRST LIGHT: RESOWN — the one cold thing in a picture of warm stone and amber dawn.
One material on every bloom. The two per-instance lanes the Bloom component
writes are what make each mound its own:
| lane | x | y | z | w |
|---|---|---|---|---|
| 0 | bloom level 0..1 | burn 0..1 | seed | spare |
| 1 | plot centre x | plot centre y | plot centre z | plot half-width |
The level dissolves the mound in, it does not scale it. A fragment draws
only where the level has paid for a creep field that runs from the plot's
downhill (+Z) lip — the side the bloom arrives over — toward the uphill wall,
roughened by fbm noise. So a rising level walks a ragged front up the plot.
The burn runs a second field the same way, so the beam eats holes through
the mass and lights their edges with ember_color instead of shrinking it.
vertex() boils the surface with two octaves of noise taken from v.time, so
the motion vectors report the froth's real velocity. The body is surface(),
so the engine lights it and the PBR debug passes read the real channels.
The advancing front and the burning edge each get their own emissive term
(edge_gain, ember_gain), which is what makes growth and destruction legible
at a glance in a dark frame.
Scoped to this part · feeds back into the world's score.