rotateUV
rotateUV
rotateUV 是一个工具节点,它封装了复杂的2D旋转算法,用于方便地对UV坐标等二维向量进行旋转,并可以指定旋转中心。
核心优势
将复杂的旋转数学逻辑(平移-旋转-平移)封装成一个简洁的函数,极大地简化了代码。它允许精确控制旋转的轴心点(默认为最常用的UV中心 `vec2(0.5)`),并且非常适合通过连接动态节点(如`timerLocal`)来创建漩涡、旋转等动画效果。
常见用途
漩涡与传送门特效
静态旋转与校正贴图
仪表盘与雷达扫描动画
如何调整
效果主要通过改变 `rotation` (旋转角度) 和 `center` (旋转中心) 输入来调整。将 `timerLocal().mul(speed)` 连接到 `rotation` 可控制旋转速度和方向;改变 `center` 的值可以移动旋转轴心;使用 `sin(timerLocal())` 则可以创造来回摆动的效果。
代码示例
1// 将原始UV坐标围绕其中心(默认)进行旋转
2// 旋转角度由一个随时间变化的节点(timerLocal)驱动
3const rotatedUV = rotateUV(uv(), timerLocal());
4
5// 使用旋转后的UV坐标进行纹理采样,实现动态旋转效果
6const sampledColor = texture(myTexture, rotatedUV);