feat: reconstruct the chase-view grand tourer

This commit is contained in:
2026-09-02 15:06:14 +03:00
parent 5c52de9134
commit e4c832356b
5 changed files with 475 additions and 81 deletions

View File

@@ -213,8 +213,15 @@ describe('scene render quality', () => {
expect(maxX - minX).toBeGreaterThan(0.22);
expect(minY).toBeGreaterThan(-0.98);
expect(maxY).toBeLessThan(-0.15);
const silhouette = car.group.getObjectByName('rear-silhouette');
const silhouette = car.group.getObjectByName('rear-silhouette') as {
material: { color: { r: number; g: number; b: number } };
};
expect(silhouette).toBeDefined();
expect(car.group.getObjectByName('rear-light-bar')).toBeDefined();
expect(car.group.getObjectByName('rear-glass')).toBeDefined();
expect(car.group.getObjectByName('rear-fascia')).toBeDefined();
expect(car.group.getObjectByName('rear-wheel-left')).toBeDefined();
expect(car.group.getObjectByName('rear-wheel-right')).toBeDefined();
const silhouetteBounds = new THREE.Box3().setFromObject(silhouette);
expect(silhouetteBounds.max.x - silhouetteBounds.min.x).toBeGreaterThan(4);
expect(Math.max(
@@ -222,6 +229,8 @@ describe('scene render quality', () => {
silhouette.material.color.g,
silhouette.material.color.b,
)).toBeGreaterThan(0.12);
car.setDetail('reduced');
expect((car.group.getObjectByName('secondary-detail') as { visible: boolean }).visible).toBe(false);
resources.dispose();
});
});