lightProjectionUV (函数)
lightProjectionUV (函数)
一个函数节点,用于计算一个世界坐标点在指定光源(通常是聚光灯)的投影纹理上对应的UV坐标,是实现投影仪效果的核心。
核心优势
它将复杂的投影矩阵运算封装成一个简单的函数,并无缝集成了场景中的光源对象,使得开发者可以轻松创建动态的投影贴图效果,而无需处理底层的线性代数。
常见用途
实现Gobo/投影仪效果,如将Logo投射到墙上。
使用Cookie Maps(光影遮罩)来塑造光线,模拟斑驳光影。
创建廉价的贴花式伪阴影(Blob Shadow)。
如何调整
此节点的效果通过在JavaScript中修改作为参数传入的 `light` 对象的属性来调整。例如,改变 `spotLight.position` 会移动投影图案,而改变 `spotLight.angle` 则会像调整变焦镜头一样缩放图案的大小。
代码示例
1
2// 传入场景中的聚光灯对象,获取投影UV
3const projectionUV = lightProjectionUV( spotLight );
4
5// 使用该UV对投影纹理进行采样
6const projectedColor = texture( projectorMap ).uv( projectionUV.xy );
7