feat(scene): phone LOD car and clearcoat coachwork on desktop

Phones and the low tier load a decimated grand tourer built by a headless
Blender script (31k to 11k faces, same nodes and materials). Desktop gets
clearcoat paint and a soft halo parented to the tail bar.
This commit is contained in:
2026-10-10 22:41:12 +03:00
parent 06b6e996a0
commit 582bf6dc43
6 changed files with 167 additions and 5 deletions

View File

@@ -127,8 +127,13 @@ export async function createProceduralSceneGeneration(
const horizonAir = createHorizonAir(context.resources);
const skyline = createSkyline(context.resources);
const traffic = createTraffic(context.resources, quality);
const authoredCar = await loadGrandTourer(context.signal);
const car = createCar(context.resources, authoredCar);
// Phones and the low tier get the decimated car; it is about 200 px wide
// there and seen from behind.
const liteCar =
Math.min(canvas.clientWidth || 0, canvas.clientHeight || 0) < 600
|| context.quality === 'low';
const authoredCar = await loadGrandTourer(context.signal, liteCar);
const car = createCar(context.resources, authoredCar, { coachwork: !liteCar });
car.setDetail(mobileOrTablet ? 'reduced' : 'full');
await prepareSignTypography(context.signal);
const sign = createSign(context.resources, {