用途:为 Three.js 场景选择和配置灯光、阴影行为与基于图像的光照(IBL),并诊断黑屏、画面平淡、过曝、阴影痤疮或灯光开销过高等问题。材质相关的 PBR 表面设置交由 threejs-materials,HDR/环境资源准备交由 threejs-textures,屏幕空间效果交由 threejs-postprocessing。
主要能力:支持 DirectionalLight(日/月类方向光)、PointLight(局部灯泡或小发光体)、SpotLight(带衰减的锥形/投影光)、HemisphereLight(天空/地面柔和补光)、RectAreaLight(大面积影棚面板光),以及环境贴图/IBL 提供 PBR 反射与漫射照明。可配置阴影贴图类型与相机范围。
使用方式与步骤:先确认网格使用可响应光照的材质(如 MeshStandardMaterial,无光照的 MeshBasicMaterial 无法体现灯光变化),并在渲染器层面设定颜色/色调设置;再按视觉需求选择最窄的灯光模型;随后开启 renderer.shadowMap.enabled = true 并按需设置 renderer.shadowMap.type,为网格设置 castShadow / receiveShadow,收紧 shadow.camera 的 near/far 与阴影贴图尺寸;需要 PBR 时通过对应加载器/PMREM 路径加载并预处理 HDR/等距柱状资源,设置 scene.environment,需要可见背景时另行设置 scene.background;最后对比阴影开关、仅直接光、仅 IBL 的效果,并在目标设备上实测性能。示例片段包括 new THREE.DirectionalLight、HemisphereLight 与 shadow.mapSize.set(1024, 1024) 等设置,仅供配置参考。
适用场景:小型产品展示可用主方向光/面光加低强度补光和环境贴图,不必堆叠大量带阴影的点光;户外场景可用一个方向太阳光、天空/地面半球光,并按需让有限阴影相机跟随可视区域。
限制:资料未提供具体收费标准、平台支持范围与完整性能数值;提高阴影质量、贴图尺寸或更新频率应视为需实测的性能取舍,不应盲目调参,阴影异常应先检查几何尺度、bias 与 normal bias。使用辅助线工具后在正式视图中应移除或限制。资源释放需通过纹理加载归属方处理环境/渲染资源。