Initial commit

This commit is contained in:
2026-01-08 19:59:09 +03:00
parent 4a4a7f0213
commit aedfd6a217

View File

@@ -4,7 +4,7 @@ import * as THREE from 'three';
* Базовый свет сцены (Ambient + Directional) * Базовый свет сцены (Ambient + Directional)
*/ */
export function setupLights(scene) { export function setupLights(scene) {
const ambient = new THREE.AmbientLight(0xffffff, 1.3); const ambient = new THREE.AmbientLight(0xffffff, 1.4);
scene.add(ambient); scene.add(ambient);
const key = new THREE.DirectionalLight(0xffffff, 0.8); const key = new THREE.DirectionalLight(0xffffff, 0.8);
@@ -33,25 +33,40 @@ export function setupRoomLights(room) {
} }
// === СПОТ-СВЕТ === // === СПОТ-СВЕТ ===
const spotLight = new THREE.SpotLight(0xffffff, 5, 80, Math.PI/4, 0.5, 1); const spotLight = new THREE.SpotLight(
0xffffff,
5, // intensity
80, // distance
Math.PI / 4, // angle
0.5, // penumbra
2 // decay (физически корректный)
);
spotObject.add(spotLight); spotObject.add(spotLight);
spotLight.position.set(0, 0, 0); spotLight.position.set(0, 0, 0);
// === Target по -Z (вниз) === // === Target (локально по -Z) ===
spotObject.add(spotLight.target); spotObject.add(spotLight.target);
spotLight.target.position.set(0, 0, -1); spotLight.target.position.set(0, 0, -1);
spotLight.target.updateMatrixWorld(true); spotLight.target.updateMatrixWorld(true);
// === ВИЗУАЛЬНАЯ ТОЧКА ИСТОЧНИКА (сфера) === // === ВИЗУАЛЬНЫЙ СВЕТЯЩИЙСЯ КРУГ (LED-линза) ===
const bulb = new THREE.Mesh( const bulb = new THREE.Mesh(
new THREE.SphereGeometry(0.02, 12, 12), new THREE.CircleGeometry(0.01, 24),
new THREE.MeshStandardMaterial({ new THREE.MeshStandardMaterial({
color: 0xffffff, color: 0xffffff,
emissive: 0xffffff, emissive: 0xffffff,
emissiveIntensity: 2 emissiveIntensity: 2.5,
roughness: 0.2,
metalness: 0.0,
side: THREE.DoubleSide
}) })
); );
bulb.position.set(0, 0, 0);
// CircleGeometry смотрит по +Z → поворачиваем вниз
bulb.rotation.x = -Math.PI;
bulb.position.set(0, 0, -0.005);
spotObject.add(bulb); spotObject.add(bulb);
console.log(`Спот корректно создан: ${spotName}`); console.log(`Спот корректно создан: ${spotName}`);