Sky, atmosphere and time of day
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 chain
Section titled “Resource chain”| 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
LayeredSky profiles
Section titled “LayeredSky profiles”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
The registry-ordered read consumes all 48 LayeredSky bodies exactly.
| Offset | Size | Type | Field | Confidence | Notes |
|---|---|---|---|---|---|
| 0x0 | 8 | u64 | object identity | Proven | |
| 0x8 | 4 | u32 = 0x5CDF6DE9 | keyframe class | Proven | |
| 0xC | 1 | u8 | managed byte | Proven | |
| 0xD | 4 | f32 | TimeOfDay | Proven | |
| 0x11 | 4 | u32 | LUTCRC | Proven | |
| 0x15 | 4 | u32 = 256 | TransmittanceWidth | Proven | |
| 0x19 | 4 | u32 = 64 | TransmittanceHeight | Proven | |
| 0x1D | 4 | u32 = 32 | InscatterWidth | Proven | |
| 0x21 | 4 | u32 = 32 | InscatterHeight | Proven | |
| 0x25 | 4 | u32 = 16 | InscatterDepth | Proven | |
| 0x29 | 1 | u8 = 1 | IsDataGenerated | Proven |
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 |
Atmosphere program
Section titled “Atmosphere program”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
Stars, moon and clouds
Section titled “Stars, moon and clouds”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
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
Shaun White Skateboarding
Section titled “Shaun White Skateboarding”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