Skip to content

Sky, atmosphere and time of day

AnvilLighting and skyApplies toRRSWS

The visible sky is evaluated from precomputed scattering data and controller values, rather than being one stored sky image. Event presets choose a season/look, weather preset and hour; the season connects time-of-day and weather controllers to WorldAmbiance and LayeredSky. Observed · resource references and sky program

Resource Stored role Confidence
AmbianceAndTimeOfDayPreset 29-byte body: byte 1, nine-byte Season link, ten-byte Forecast reference, hour f32, angle f32 and one byte Proven · all 290 preset bodies
Season Look name, controller references, WorldAmbiance and parent Observed · references across 75 season entries
ForecastPreset Byte and twelve floats; named examples correlate with snow, wetness, dust, fog and cirrus Observed · framing Inferred · several float meanings
WorldAmbiance LayeredSky, overlay, flare images, environment cube and rain/snow/dust textures Observed · reference positions across 110 resources
LayeredSky Sun/moon parameters, sky textures, cloud parameters and scattering keyframes Proven · 48 complete registry-ordered bodies

The preset’s second float is an angle in degrees; its precise runtime meaning is unresolved. It must not be equated with the sun azimuth solely from its range. Observed · values Unknown · angle role

Property controllers address fields by paths of CRC-32 names and store float, float4 or byte tracks. Packed track headers include the first key’s time in their upper half. The registry-ordered read covers every one of the 20,741 entries across all 140 time-of-day and 63 weather-controller bodies, leaving exactly each entry’s 13-byte trailer, or five bytes on the last entry. Proven · all 203 controller bodies

Forty-seven LayeredSky bodies are 3,442,710 bytes with 24 hourly keyframes; WhiteRoom has a 143,994-byte single-keyframe profile and a shorter field prefix. Every body is consumed exactly by the registry-ordered structure. The normal profile’s keyframes begin at 582; WhiteRoom’s begin at 572. Proven · all 48 bodies

Scattering keyframe prefix42 bytes100% known

The registry-ordered read consumes all 48 LayeredSky bodies exactly.

ProvenObservedSourcedInferredUnknownNot described
OffsetSizeTypeFieldConfidenceNotes
0x08u64object identityProven
0x84u32 = 0x5CDF6DE9keyframe classProven
0xC1u8managed byteProven
0xD4f32TimeOfDayProven
0x114u32LUTCRCProven
0x154u32 = 256TransmittanceWidthProven
0x194u32 = 64TransmittanceHeightProven
0x1D4u32 = 32InscatterWidthProven
0x214u32 = 32InscatterHeightProven
0x254u32 = 16InscatterDepthProven
0x291u8 = 1IsDataGeneratedProven

Each 143,422-byte keyframe then contains five counted buffers. Their dimensions and sizes account for its entire remaining body. Proven · all sky keyframes

Buffer Elements and bytes Confidence
SkyInscatterLUT 65,536 half floats, 131,072 bytes; 32×32×16 RGBA16F Proven · storage
SkyOpticalDepthLUT 1,024 half floats, 2,048 bytes Proven · storage
SkyIrradianceLUT 768 f32, 3,072 bytes Proven · storage
SunOpticalDepth 256 float3, 3,072 bytes Proven · storage
SunScatteringIrradiance 256 float4, 4,096 bytes Proven · storage

Executing the unmodified plain SunSkyModel pixel program under WARP with a real hourly table establishes a single-scattering model: sampled RGBA is raised to the fourth power; RGB contributes Rayleigh scattering and alpha reconstructs a Mie component. Two Cornette–Shanks phase functions blend at MieG, MieGPeak and MieGPeakBlend. Sun and moon each contribute through their own direction and colour. Proven · plain sky program with Clear_Day table

The lookup’s x coordinate depends on sun elevation, y on the path to the atmosphere boundary and z on view/sun cosine. The program uses ground radius 6,360.19 km and atmosphere thickness 60 km. Sun elevations down to 20 degrees below the horizon fit its lookup. Observed · program constants and arithmetic

The program adds an irradiance-like term and Milky Way sample, then multiplies radiance by the positive linear lighting scale cb1[39].x. That scale is not itself an EV or the grading controller’s property also named Exposure. A world snapshot measures sun elevation 51.29 degrees at 08:42:30; it does not establish the full sun-by-hour curve. Observed · program and snapshot

The Milky Way is a 4000×2000 BC1 equirectangular map, sampled as u=.5-azimuth/(2*pi), v=.5-elevation/pi after a star-frame rotation. The moon has a sprite and contributes to atmospheric scattering as a second directional source. Observed · stored maps and shader

The star vertex program reads a structured buffer with 16-byte entries and emits six vertices per star. Its multipliers fit right ascension in hours, declination in degrees and magnitude. The astronomical interpretation is inferred from those constants; the source of the star buffer is unresolved. The complete LayeredSky serialization contains no stored star-catalog field. Observed · program and complete serialization Inferred · astronomical units

Cloud fields include cover, altitude, thickness, movement and cirrus textures. Dedicated cloud evaluation, sky-mask, sun/moon-disc and sun-cloud-occlusion programs are identified by the engine shader table; their complete rendering response is not established by the plain-sky execution. Observed · registry and shader table

How are sky tables and controllers evaluated together?

The runtime interpolation between hourly tables, full sun trajectory and azimuth frame, cloud model, star-buffer source and full exposure-to-display pipeline remain unresolved. The WARP sky result is a program-level check with explicit inputs, not a matched game screenshot. Unknown

only in SWS

Each world’s root entry holds one SkyLight object (0x77EEEBB4, named 01_SkyLight in level 01, body 200 bytes): a 106-byte prefix and an inline SunLight. The sun colour, intensity and the ambient colour are fixed by the executable’s property descriptors and its serialiser. Observed · SWS[level 01 and the executable]

Body offset Size Value in level 01 Meaning Confidence
9 12 (0.46, 0.27, 0.85) A direction vector; its sign convention is not established Observed
29 4 FFF9F1DE Sun colour, packed Observed
33 4 2.5 SunLightIntensity Observed
62 12 three small finite floats A Vec3 property; not references Unknown
74 16 (70, 70, 70, 50) of 255 AmbientColor, a Vec4 Observed
90 16 (120, 120, 120, 0) of 255 A Vec4 whose property hash is 0xEA0E031C; unlabelled Unknown

The ambient colour of the six levels is grey, 70, 70, 70, 90, 70 and 50 of 255. The fog and the global ambient controls of the sky are not described. Observed · all six levels