Parent
Part of #898.
Depends on
#900, #899, and #903.
Goal
Replace simple/legacy/partial-PBR branching with one atmosphere-driven, scene-linear PBR-lite model matching the selected cinematic saturated art direction.
Scope
- Remove the hard-coded
simple_lighting_mode override.
- Collapse terrain simple, legacy, and partial-PBR branches into one shared lighting equation.
- Use Lambert diffuse plus restrained dielectric GGX specular; metalness remains zero unless explicitly authored.
- Compose directional sun/moon, hemispherical sky irradiance, subtle neutral ground bounce, propagated skylight, and colored RGB block light.
- Apply mesh AO and SSAO only to indirect diffuse, not direct sun or specular.
- Add a controlled readable-dark indirect floor without converting low-light albedo to gray-blue.
- Correct camera-relative view vectors and TBN handedness.
- Produce sun radiance, sky/ground irradiance, fog/scattering colors, and exposure from one atmosphere state.
- Keep terrain, sky, fog, water inputs, and future volumetrics on the same atmosphere contract.
- Keep albedo sampling in sRGB hardware decode and all lighting/composition in linear HDR.
- Use one AgX-style tone map and exactly one display encoding step.
- Move cinematic saturation/contrast into an authored LUT; remove mandatory
applyLushGrade stacking and hard-coded cyan cave/sky terms.
- Retune presets so they share the same visual model and differ only in feature quality/cost.
Acceptance criteria
Verification
nix develop --command zig build test
nix develop --command zig build -Dskip-present
nix develop --command zig build run -Dskip-present -Dauto-world=normal -Dscreenshot-path=screenshots/lighting-phase3-world.png -Dscreenshot-frame=180 -Dscreenshot-delay-seconds=3
nix develop --command zig build benchmark -Doptimize=ReleaseFast -Dbenchmark-preset=high -Dbenchmark-duration=60 -Dbenchmark-output=lighting-phase3-high.json
Parent
Part of #898.
Depends on
#900, #899, and #903.
Goal
Replace simple/legacy/partial-PBR branching with one atmosphere-driven, scene-linear PBR-lite model matching the selected cinematic saturated art direction.
Scope
simple_lighting_modeoverride.applyLushGradestacking and hard-coded cyan cave/sky terms.Acceptance criteria
Verification
nix develop --command zig build test nix develop --command zig build -Dskip-present nix develop --command zig build run -Dskip-present -Dauto-world=normal -Dscreenshot-path=screenshots/lighting-phase3-world.png -Dscreenshot-frame=180 -Dscreenshot-delay-seconds=3 nix develop --command zig build benchmark -Doptimize=ReleaseFast -Dbenchmark-preset=high -Dbenchmark-duration=60 -Dbenchmark-output=lighting-phase3-high.json