dawn
The hour the hill climbs through, written as a ramp. `M.at(t)` reads the whole environment off ONE axis — `t = Core.state.dawn`, 0 in the deep of the night and 1 at first light — and hands back the sun, the ambient, the sky, the height fog, the mist, and the two numbers the turf…
dawn
The hour the hill climbs through, written as a ramp. M.at(t) reads the whole
environment off ONE axis — t = Core.state.dawn, 0 in the deep of the night and
1 at first light — and hands back the sun, the ambient, the sky, the height fog,
the mist, and the two numbers the turf shader wants. Five keys, and the reading
between them is a straight interpolation on a smoothstepped t, so a key reads
as a held moment rather than a corner.
Retuned for FIRST LIGHT off the caldera ramp it came from. Three things changed and they are all the same change:
- The sun crests the SUMMIT. The hill rises along +Z, so the sun stands at
+Z and its light travels toward −Z.
game.world.moor_skyaims every warm thing in the sky at the directional light's own vector, so stating the sun here puts the glow, the horizon band and the disc over the cairn with it. - The sun's elevation is the clock. It climbs from 15 degrees under the horizon to 14 over it, and the summit stands about 11 degrees above the player at the foot — so the disc clears the cairn in the last tenth of the round and the crest IS the ending.
- The palette is turf and mist, not lava: cold blues and violets the whole way, one warm colour arriving late, and the fog pooled low enough to sit in the hollows while the summit stands clear of it.
M.keys() hands back the keys themselves, for anything that wants to render the
ramp rather than climb through it.
Scoped to this part · feeds back into the world's score.