fix(scene): remove exit-gate flashes and sub-3 Hz-unsafe flickers

This commit is contained in:
2026-10-10 22:04:09 +03:00
parent 298da54871
commit 32eb3e4d40
7 changed files with 15 additions and 157 deletions

View File

@@ -20,7 +20,6 @@ import { createPostProcessor } from '@/scene/post-processing';
import { installCinematicGrade } from '@/scene/cinematic-grade';
import { createSkyline } from '@/scene/world/skyline';
import { createTraffic } from '@/scene/world/traffic';
import { createExitGates } from '@/scene/world/exit-gates';
import { createDriveDynamics } from '@/scene/drive-dynamics';
import { HORIZON_FOG_END, HORIZON_FOG_START } from '@/scene/world/metrics';
import { CHAPTER_COMPOSITIONS } from '@/scene/world/composition';
@@ -129,7 +128,6 @@ export async function createProceduralSceneGeneration(
const horizonAir = createHorizonAir(context.resources);
const skyline = createSkyline(context.resources);
const traffic = createTraffic(context.resources, quality);
const exitGates = createExitGates(context.resources);
const authoredCar = await loadGrandTourer(context.signal);
const car = createCar(context.resources, authoredCar);
car.setDetail(mobileOrTablet ? 'reduced' : 'full');
@@ -149,7 +147,6 @@ export async function createProceduralSceneGeneration(
horizonAir.group,
skyline.group,
traffic.group,
exitGates.group,
car.group,
speedWake.group,
sign.group,
@@ -350,7 +347,6 @@ export async function createProceduralSceneGeneration(
18 + snapshot.driveSpeed * 54 + response.roadEnergy * 48,
elapsedSeconds,
);
const cut = exitGates.update(snapshot.activeSectionId, deltaSeconds);
sun.update(
currentPalette,
snapshot.routeProgress,
@@ -589,12 +585,11 @@ export async function createProceduralSceneGeneration(
}
}
if (postProcessor) {
postProcessor.setDynamics(Math.max(response.bloomEnergy, cut * 0.45));
postProcessor.setDynamics(response.bloomEnergy);
postProcessor.setLens({
time: elapsedSeconds,
letterbox: 0.115 * (1 - THREE.MathUtils.smoothstep(introProgress, 0.5, 1)),
flash: cut * 0.08,
energy: Math.max(overdrive, cut),
energy: overdrive,
});
postProcessor.render(scene, camera);
} else {