pointShadow
pointShadow
pointShadow 节点将为点光源(PointLight)创建全向实时阴影的复杂立方体阴影贴图(Shadow Cube Map)逻辑完全封装。它返回一个 0.0 到 1.0 的阴影因子,使开发者能在 TSL 中像调用一个普通函数一样轻松实现高质量的点光源阴影效果。
核心优势
将创建逼真点光源阴影的难度从编写数十行复杂的 GLSL 代码降低为调用一个节点,用户无需关心立方体贴图、坐标转换等底层细节,且其表现与 Three.js 标准工作流无缝集成。
常见用途
模拟室内或局部照明(如灯泡、蜡烛、篝火)
在动态和交互式环境中(如角色手持灯笼)创建实时阴影
作为基础遮挡数据源,驱动风格化或艺术化的阴影效果
如何调整
该节点的效果完全通过在 JavaScript 中配置其关联的 `THREE.PointLight` 对象的 `.shadow` 属性来调整。关键属性包括:通过 `shadow.bias` 解决阴影痤疮,通过 `shadow.radius` 创建柔和的软阴影边缘,以及通过 `shadow.mapSize` 控制阴影贴图的分辨率来平衡质量与性能。
代码示例
1const shadowFactor = pointShadow( pointLight );
2
3// 将颜色与阴影因子相乘,实现阴影效果
4material.colorNode = baseColor.mul( shadowFactor );