用途:当用户涉及 three.js 灯光与阴影时使用本技能,包括启用 castShadow / receiveShadow、阴影贴图尺寸、bias、normalBias、阴影投射相机视锥,以及物理光源的 intensity、distance/decay、聚光灯 angle/penumbra、面光源设置、LightProbe 辐照度探针和带 IES 数据的 IESSpotLight。
主要能力:基础布光配方为环境光/半球光补光 + 平行光模拟太阳 + 局部点光源/聚光灯;阴影方面需在渲染器启用阴影、标记投射与接收对象、按性能权衡贴图尺寸、调整 bias 消除阴影痤疮与悬浮感;RectAreaLight 需按文档先初始化附加库;探针需放置并可用附加生成器生成数据,与材质环境反射相关;IES 需先经加载器获取配置文件再挂到 IESSpotLight。
使用方式与边界:灯光类与阴影类位于官方文档 Lights 章节,RectAreaLight 与探针附加组件依赖 Addons → Lights 的额外初始化,IES 配置需 threejs-loaders 先取文件。IES/HDR 文件加载归 threejs-loaders,LightNode / TSL 灯光归 threejs-node-tsl,CSM 深层理论与 DCC 烘焙光照贴图不在范围内。
常见陷阱:阴影贴图分辨率需匹配场景尺度;点光源阴影为六面开销大;RectAreaLight 缺少必需库会变黑或着色错误;物理单位与色调映射不匹配会导致过曝或过暗;bias 与 normalBias 需在痤疮与悬浮间权衡,可借助 threejs-helpers 可视化视锥。性能上应限制投射阴影的灯光数量,并用 layers 排除对象。
参考:https://threejs.org/docs/#Lights、https://threejs.org/docs/DirectionalLight.html、https://threejs.org/docs/SpotLight.html、https://threejs.org/docs/LightShadow.html。