Appearance
环境系统实现核心(barrel + observer + fog)
系统概览
环境系统实现核心(从原 env-impl 拆分而来)。本文件保留:observer、fog、barrel re-export。天空→env-sky.ts、地面→env-ground.ts、共享上下文→env-context.ts,各子系统经本文件 barrel 汇聚。
核心职责
- 汇聚 re-export:water(
createWater/disposeWater/refreshWaterRenderList/ripple 系列)、clouds(createClouds/disposeClouds);mirror 符号(createMirror/disposeMirror/isMirrorActive/updateMirrorClearColor)仅为本文件内部import(调用点见:106-109/:92-93),不经本文件 re-export,对外经env.ts暴露子集 - 环境 observer:
ensureEnvUpdateObserver/disposeEnvUpdateObserver(由门面 re-export 供 scene 清理) - fog 应用(
applyFog)、共享上下文:_envSys/getScene为来自_shared/env-context的 barrel 重导出;getPipeline/resolveStaticAsset/isInitialized需直接import自_shared/env-context(本文件不重导出) - 场景 tick 回调:
registerSceneTickCallback为来自_bridge/env-dispatcher的 barrel 重导出(返回反注册函数() => void);clearSceneTickCallbacks/runSceneTickCallbacks仅为本文件内部import(定义见env-dispatcher),observer 每帧调用runSceneTickCallbacks(),disposeEnvUpdateObserver中调用clearSceneTickCallbacks()
对外 API(节选)
本文件自身定义:
ensureEnvUpdateObserver()/disposeEnvUpdateObserver()— 每帧 observer 的注册与级联释放applyFog(state: EnvState)— 按fogMode/fogDensity等应用雾
本文件为 barrel 重导出(定义见上游模块):
initEnvImpl(scene, pipeline)(定义于env-context)registerSceneTickCallback(cb: () => void): () => void— 来自env-dispatcher的 barrel 重导出,返回反注册函数;clearSceneTickCallbacks()/runSceneTickCallbacks()仅为本文件内部import,非重导出- water/clouds/sky/ground/particles 各子系统 API(定义于各自
env-*模块,经本文件 barrel 透传;mirror 不经本文件透传)
关键约定
- dispose 链路级联释放 water/clouds/mirror 子资源(见各子系统卡)
- observer 句柄经
observer-handle管理,场景销毁时移除
与其他子系统关系
- 被
env.ts门面 barrel 透传 - 依赖
env-context.ts(共享上下文)、env-dispatcher.ts(tick 回调) - 下游:env-sky/ground/clouds/water/terrain/texture 各子系统