fix(sky): preserve dark model lighting and address review

Merge origin/main and retain both format-scope additions.
Give StarrySky a separate black environment cube map and release it on destroy.
Guard anime updates when StarrySky is absent, require a visible Normal sky
before anime QA, and compare a lit airplane against black and white controls.
Document the sky background contract and its verification.

Co-Authored-By: GPT-6 (Codex) <[email protected]>
This commit is contained in:
German KhokhlovandGPT-6 committed 2026-10-21 14:21:14 +04:00
commit 27d4c0ba9c
228 files changed
+26920 -17345

No files matched your search

+14
View File
@@ -179,6 +179,20 @@ test('the anime stage fades the Milky Way out with its own intensity', () => {
f.effects.destroy();
});
for (const skyBox of [undefined, null, {}]) {
test(`anime works without StarrySky (${JSON.stringify(skyBox)})`, () => {
const f = fixture();
f.effects.viewer.scene.skyBox = skyBox;
f.effects.initStyles();
f.effects.setStageIntensity(f.effects.stages.anime, 1);
assert.equal(f.effects.stages.anime.enabled, true);
f.effects.setStageIntensity(f.effects.stages.anime, 0);
assert.equal(f.effects.stages.anime.enabled, false);
if (skyBox) assert.equal('milkyWayVisibility' in skyBox, false);
f.effects.destroy();
});
}
test('bloom retains its dead zone, normalized intensity and independent toggle', () => {
const f = fixture();
f.effects.initPostProcess();