22 lines
1.2 KiB
Markdown
22 lines
1.2 KiB
Markdown
# ADR 0011: Scene lighting policy (project sun vs scene sun)
|
|
|
|
## Status
|
|
|
|
Accepted
|
|
|
|
## Context
|
|
|
|
A single scene-authored directional `LightDesc` hides the runtime `ProjectSun`, which can make outdoor levels appear black if lux values are wrong. Project Settings ambient/sun did not always apply live after **Apply**.
|
|
|
|
## Decision
|
|
|
|
- **`ProjectSun`** is the default outdoor directional; scene-authored directionals override it (existing `sync_project_sun_visibility` behavior).
|
|
- **Editor commands** (Scene menu + Rendering Diagnostics): *Use project sun* (remove scene directionals) and *Bake scene sun from project* (spawn directional `LightDesc` from current `sun_illuminance`).
|
|
- On **`ProjectSettingsChanged`**, the editor applies ambient light, `sync_project_sun_illuminance`, and `sync_project_sun_visibility`; render view refreshes via existing `ProjectSettings` change detection.
|
|
- Legacy directional lux < 1000 is corrected in **schema migration** to `100_000` lux (documented default), not at hydration time.
|
|
|
|
## Consequences
|
|
|
|
- Status/diagnostics UI should surface sun override state (Rendering Diagnostics panel).
|
|
- Designers use authoring `LightDesc` units: lumens (point/spot), lux (directional).
|