Tweak: mood of lighting and gentler lightshafts

This commit is contained in:
Dejvino 2025-11-22 13:37:38 +01:00
parent c612b38574
commit 37f0d30fee
3 changed files with 6 additions and 6 deletions

View File

@ -39,11 +39,11 @@ export function createSceneObjects() {
state.scene.add(floor);
// 3. Lighting (Minimal and focused)
const ambientLight = new THREE.AmbientLight(0x606060, 0.1); // Increased ambient light for a larger space
const ambientLight = new THREE.AmbientLight(0x606060, 0.2); // Increased ambient light for a larger space
state.scene.add(ambientLight);
// Add a HemisphereLight for more natural, general illumination in a large space.
const hemisphereLight = new THREE.HemisphereLight(0xffffff, 0x444444, 0.2);
const hemisphereLight = new THREE.HemisphereLight(0xffddcc, 0x444455, 0.5);
// Visual aids for the light source positions
if (state.debugLight && THREE.HemisphereLightHelper) {

View File

@ -22,7 +22,7 @@ export class RoseWindowLight extends SceneFeature {
this.spotlight.position.set(0, naveHeight, -length / 2 + 10); // Position it at the rose window
this.spotlight.angle = Math.PI / 9; // A reasonably focused beam
this.spotlight.penumbra = 0.3; // Soft edges
this.spotlight.decay = 0.9;
this.spotlight.decay = 0.7;
this.spotlight.distance = 30;
this.spotlight.castShadow = false;

View File

@ -59,7 +59,7 @@ export class RoseWindowLightshafts extends SceneFeature {
});
// --- Create multiple thin light shafts ---
const numShafts = 7;
const numShafts = 12;
for (let i = 0; i < numShafts; i++) {
const material = baseMaterial.clone(); // Each shaft needs its own material for individual opacity
@ -107,7 +107,7 @@ export class RoseWindowLightshafts extends SceneFeature {
const { mesh, startPoint, endPoint, floorStartPoint, floorEndPoint, moveSpeed } = shaft;
// Animate texture for dust motes
mesh.material.map.offset.y -= deltaTime * 0.1;
mesh.material.map.offset.y -= deltaTime * 0.001;
// --- Movement Logic ---
const pathDirection = floorEndPoint.clone().sub(floorStartPoint).normalize();
@ -140,7 +140,7 @@ export class RoseWindowLightshafts extends SceneFeature {
mesh.quaternion.copy(quaternion);
// --- Music Visualization ---
const beatPulse = state.music ? state.music.beatIntensity * 0.25 : 0;
const beatPulse = state.music ? state.music.beatIntensity * 0.05 : 0;
mesh.material.opacity = fadeOpacity + beatPulse;
});
}