Tweak: mood of lighting and gentler lightshafts
This commit is contained in:
parent
c612b38574
commit
37f0d30fee
@ -39,11 +39,11 @@ export function createSceneObjects() {
|
|||||||
state.scene.add(floor);
|
state.scene.add(floor);
|
||||||
|
|
||||||
// 3. Lighting (Minimal and focused)
|
// 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);
|
state.scene.add(ambientLight);
|
||||||
|
|
||||||
// Add a HemisphereLight for more natural, general illumination in a large space.
|
// 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
|
// Visual aids for the light source positions
|
||||||
if (state.debugLight && THREE.HemisphereLightHelper) {
|
if (state.debugLight && THREE.HemisphereLightHelper) {
|
||||||
|
|||||||
@ -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.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.angle = Math.PI / 9; // A reasonably focused beam
|
||||||
this.spotlight.penumbra = 0.3; // Soft edges
|
this.spotlight.penumbra = 0.3; // Soft edges
|
||||||
this.spotlight.decay = 0.9;
|
this.spotlight.decay = 0.7;
|
||||||
this.spotlight.distance = 30;
|
this.spotlight.distance = 30;
|
||||||
|
|
||||||
this.spotlight.castShadow = false;
|
this.spotlight.castShadow = false;
|
||||||
|
|||||||
@ -59,7 +59,7 @@ export class RoseWindowLightshafts extends SceneFeature {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// --- Create multiple thin light shafts ---
|
// --- Create multiple thin light shafts ---
|
||||||
const numShafts = 7;
|
const numShafts = 12;
|
||||||
for (let i = 0; i < numShafts; i++) {
|
for (let i = 0; i < numShafts; i++) {
|
||||||
const material = baseMaterial.clone(); // Each shaft needs its own material for individual opacity
|
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;
|
const { mesh, startPoint, endPoint, floorStartPoint, floorEndPoint, moveSpeed } = shaft;
|
||||||
|
|
||||||
// Animate texture for dust motes
|
// Animate texture for dust motes
|
||||||
mesh.material.map.offset.y -= deltaTime * 0.1;
|
mesh.material.map.offset.y -= deltaTime * 0.001;
|
||||||
|
|
||||||
// --- Movement Logic ---
|
// --- Movement Logic ---
|
||||||
const pathDirection = floorEndPoint.clone().sub(floorStartPoint).normalize();
|
const pathDirection = floorEndPoint.clone().sub(floorStartPoint).normalize();
|
||||||
@ -140,7 +140,7 @@ export class RoseWindowLightshafts extends SceneFeature {
|
|||||||
mesh.quaternion.copy(quaternion);
|
mesh.quaternion.copy(quaternion);
|
||||||
|
|
||||||
// --- Music Visualization ---
|
// --- 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;
|
mesh.material.opacity = fadeOpacity + beatPulse;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user