Appearance
天空系统
系统概览
天空子系统的完整实现:三种天空模式(color 渐变色 / procedural 程序化天空盒 / cube 六面体 HDR 贴图),支持恒星纹理、太阳光晕、昼夜过渡。通过 applySky 统一调度,带缓存与清理机制。
核心职责
env-sky.ts— 天空创建/切换/销毁,恒星纹理缓存与加载。
对外 API(节选)
applySky(state)— 根据 EnvState 的 skyMode 选择并应用天空模式。disposeSky()— 销毁天空球、环境贴图、太阳光晕与观察者。clearStarsTexCache()— 清理恒星纹理缓存。
内部协作
drawSkyGradient— 在 DynamicTexture 上绘制线性渐变天空(color 模式)。updateSkyDynamicTexture— 更新渐变色天空的 DynamicTexture(含太阳光晕圆形渐变)。createProceduralSky— 用 Babylon 的CreateProceduralSkyTexture创建程序化天空。createProceduralEnvTexture— 创建程序化环境贴图(PMREMGenerator)。loadSkyCube— 加载六面体 HDR 贴图并设置环境贴图强度。
与其他子系统关系
- 依赖
env-context获取场景引用与静态资源路径。 - 太阳光晕通过
ensureEnvUpdateObserver注册每帧更新。 - 释放时调用
_disposeSunDisc清理render/lighting的太阳光晕。