优化雷声

This commit is contained in:
2026-03-28 14:54:14 +08:00
parent 133b99cf04
commit 949390501c
4 changed files with 15 additions and 8 deletions

View File

@@ -13,7 +13,7 @@ import { DEFAULT_SCENE_PARAMS } from './weatherPresets.js';
import { OffshoreWindTurbineAsset } from './objects/OffshoreWindTurbineAsset.js';
const RAIN_AUDIO_URL = '/audio/rain-calming.mp3';
const THUNDER_AUDIO_URL = '/audio/thunder-distant.mp3';
const THUNDER_AUDIO_URL = '/audio/thunder-close.mp3';
export class OceanScene {
constructor(container) {
@@ -61,6 +61,7 @@ export class OceanScene {
this.rainAudioCrossfadeDuration = 1.6;
this.thunderAudioPool = [];
this.thunderAudioIndex = 0;
this.thunderVolume = DEFAULT_SCENE_PARAMS.thunderVolume;
this.scheduledThunder = [];
this.params = { ...DEFAULT_SCENE_PARAMS };
@@ -1802,6 +1803,12 @@ export class OceanScene {
this.params.lightningIntensity = value;
}
setThunderVolume(value) {
const nextValue = THREE.MathUtils.clamp(value, 0, 1);
this.params.thunderVolume = nextValue;
this.thunderVolume = nextValue;
}
applyParams(nextParams = {}) {
const mergedParams = { ...DEFAULT_SCENE_PARAMS, ...nextParams };
@@ -1831,6 +1838,7 @@ export class OceanScene {
this.setStarIntensity(mergedParams.starIntensity);
this.setStarEnabled(mergedParams.starEnabled);
this.setLightningIntensity(mergedParams.lightningIntensity);
this.setThunderVolume(mergedParams.thunderVolume);
this.setLightningEnabled(mergedParams.lightningEnabled);
this.setRainEnabled(mergedParams.rainEnabled);
}
@@ -1904,7 +1912,7 @@ export class OceanScene {
this.thunderAudioIndex += 1;
audio.pause();
audio.currentTime = 0;
audio.volume = THREE.MathUtils.clamp(volume, 0, 1);
audio.volume = THREE.MathUtils.clamp(volume * this.thunderVolume, 0, 1);
audio.playbackRate = playbackRate;
const playPromise = audio.play();
if (playPromise?.catch) {