用途:在 Three.js 场景中设置灯光,包括环境光、半球光、平行光、点光、聚光、面光和环境光照(IBL),并避免灯光过多等常见错误。
主要能力:列出七种灯光类型及其阴影、方向、开销与强度单位;说明 r160+ 默认使用物理光照单位(平行光 lux、点光/聚光 candela、面光 nits、环境光/半球光无单位),并提示使用 renderer.toneMapping(如 ACESFilmicToneMapping)避免过曝;说明 Light 基类的 .color、.intensity、.isLight、.dispose()。
必要用法:平行光与聚光重定位 target 时需 scene.add(light.target);点光阴影需 6 次渲染,建议最多 1-2 个;面光须先调用 RectAreaLightUniformsLib.init()(WebGLRenderer)或 RectAreaLightTexturesLib(WebGPURenderer),且不支持阴影;面光用 lookAt 定向。环境贴图标准流程为 RGBELoader + PMREMGenerator,将 envMap.texture 赋给 scene.environment(所有 Standard/Physical 材质自动使用)或 scene.background,并在使用后 hdrTexture.dispose() 与 pmremGenerator.dispose()。也可用 EXRLoader;PMREMGenerator 提供 fromEquirectangular、fromScene、fromCubemap 方法。LightProbe 可用 LightProbeGenerator.fromCubeTexture。
适用场景:需要为 Three.js 场景建立真实感光照与 PBR 环境反射的开发者;参考资料列出户外、室内、影棚、产品等配方与反模式文档。
限制:性能预算建议移动端最多 4-5 个实时光,桌面端 8-16 个,面光最多 2-3 个;静态环境优先烘焙光照,优先用 IBL 作为主环境光。各 API 的具体参数范围以官方文档为准。
参考资料:references/methods.md、references/examples.md、references/anti-patterns.md;官方来源 threejs.org 文档。具体安装命令与版本信息暂未提供。