shadowPositionWorld
shadowPositionWorld
一个只读节点,代表在阴影渲染通道中,顶点在世界空间中的位置。它确保了通过 `material.positionNode` 实现的顶点位移(如水面波浪)能够投射出形状正确、动态匹配的阴影。
核心优势
确保顶点位移等高级效果能够正确投射阴影,解决了动态几何体只投射其原始静态形状阴影的常见视觉问题。
常见用途
为顶点位移特效(如水面波浪、飘动的旗帜)生成动态阴影。
根据世界空间位置实现自定义的阴影剔除或剪裁。
作为调试数据源,诊断复杂的阴影瑕疵(如阴影痤疮)。
如何调整
该节点为只读,其值由上游输入决定。要调整它,请修改 `material.positionNode` 的逻辑。例如,增大位移逻辑中的振幅(如 `mul(0.5)` 改为 `mul(2.0)`),会使物体和其投射的阴影变形更剧烈。
代码示例
1// 创建一个基于时间的位移
2const displacement = vec3( 0, sin( timerLocal().mul( 2 ) ).mul( 0.5 ), 0 );
3
4// 将位移应用到 positionNode。
5// TSL 会确保此修改在阴影通道中影响 shadowPositionWorld。
6material.positionNode = positionLocal.add( displacement );