Investigate overlapping lightbar overbrightness after HDR
Investigate excessive scene brightness where multiple lightbars overlap in PRK.Client after HDR implementation. Trace carried-light collection, selection, attenuation, shader accumulation and display transform; distinguish duplicated sources, authored light calibration, overlap and bloom. Preserve single-light readability and unrelated scene lighting. Provide source-backed findings and a targeted validation/fix recommendation; do not claim live reproduction without a known affected scene. User confirmed primarily player-worn lightbars, plus excessive overall brightness. User requested live developer controls to return preferred tuning values before a permanent lighting decision. Initial source findings: CarriedLightTests records worn lightbar mesh 26163 with range 6.13 m, constant/quadratic attenuation 0 and linear attenuation 0.1631. Both SceneLightModel.LocalContribution and VulkanShaders/local_lighting.glsl use reciprocal polynomial attenuation with only a 1e-4 denominator floor; carried contributions are summed additively. Analytical facing-surface red contribution is ~6.12 at 1 m for one bar, ~48.98 for eight, before material and display transform; near-field grows further. Shader separates carried from placed light and adds carried outside the ordinary ambient/placed-light term. AgX maps the resulting HDR value but does not normalize overlapping sources. These are source/math findings, not a live reproduction or proof of duplicate sources. Implemented session-only Developer lighting controls on feature/developer-lighting-controls: exposure -4..+2 EV in 0.05 increments, carried-light colour strength 0..2x in 0.01 increments, exact invariant numeric labels and reset to 0 EV/1x. Reuses existing pre-AgX exposure and environment presenter; UI, authored fixtures, attenuation, production defaults and saved preferences unchanged. Collector applies strength freshly each collection without allocations or compounding. Developer engine setting and UI are build-gated. Validation: nine focused non-install developer/carried-light/scene-lighting tests pass; three production Release gate/collector tests pass; run-client-dev.sh --build-only succeeds. Initial broader run hit three RequiresInstall prerequisite failures (installation not mounted), then rerun excluding that category passed. No live game/window verification or full-suite claim. User visually tuned the controls and explicitly selected -0.35 EV and 0.6x carried-light strength as permanent defaults. Implemented shared Engine calibration constants, initial exposure and developer strength, production collector default and Reset using the selected calibration. Existing UI brightness, light ranges and attenuation remain unchanged. Default/reset regression tests failed before the change and pass afterward: ten focused non-install developer/carried/scene-lighting tests and four production Release gate/default tests pass. run-client-dev.sh --build-only passes with zero warnings/errors; diff check clean. Developer controls retained. Committed as 9961c3c53 and pushed with upstream on feature/developer-lighting-controls, targeting develop; complete comparison is exactly eight intended files and one commit, working tree clean. Authentication restored via browser OAuth. Opened PR #2672 — https://git.project-rk.com/prk/engines/pulls/2672 — feature: Tune client brightness and add developer lighting controls; head feature/developer-lighting-controls, base develop. No duplicate open PR; working tree clean, branch exactly one commit ahead of recorded origin/develop. PR records validation and remaining live-startup/install-test limitations. No game process restarts. User visual validation was of the equivalent live settings; rebuilt default startup is not separately live-verified.
Checklist
0 of 0 completeNo checklist items.
- Area
- Project Rubi-Ka
- Project
- engines
- Kind
- Research
- Task ID
tsk_wb3mppcdyw- Updated