// --- Car Group (for easy stance adjustment) --- const carGroup = new THREE.Group(); scene.add(carGroup);
// --- Lighting --- // Ambient const ambientLight = new THREE.AmbientLight(0x404060); scene.add(ambientLight); // Main directional light const dirLight = new THREE.DirectionalLight(0xffffff, 1); dirLight.position.set(2, 3, 2); dirLight.castShadow = true; dirLight.receiveShadow = true; scene.add(dirLight); // Fill light from below const fillLight = new THREE.PointLight(0x4466cc, 0.3); fillLight.position.set(0, -1, 0); scene.add(fillLight); // Back rim light const rimLight = new THREE.PointLight(0xffaa66, 0.5); rimLight.position.set(-1, 1.5, -2); scene.add(rimLight); // Ground grid (subtle) const gridHelper = new THREE.GridHelper(10, 20, 0x88aaff, 0x335588); gridHelper.position.y = -0.3; gridHelper.material.transparent = true; gridHelper.material.opacity = 0.4; scene.add(gridHelper); 3d tuning unblocked 911
// --- Body (simple sporty shape) --- const bodyGeo = new THREE.BoxGeometry(0.9, 0.35, 1.8); const bodyMat = new THREE.MeshStandardMaterial( color: 0xcc3333, roughness: 0.3, metalness: 0.7 ); const body = new THREE.Mesh(bodyGeo, bodyMat); body.castShadow = true; body.receiveShadow = true; body.position.set(0, 0.1, 0); carGroup.add(body); // --- Car Group (for easy stance adjustment)