spritesheetUV
spritesheetUV
计算并输出单个纹理图集(雪碧图)中特定帧的精确UV坐标,将复杂的UV变换数学过程自动化。
核心优势
极大地简化了基于帧的动画逻辑,并通过纹理图集技术减少GPU的纹理切换和渲染批次,从而显著提升应用性能。
常见用途
2D角色序列帧动画
粒子系统特效(如爆炸、烟雾)
UI图标或位图字体图集
如何调整
核心是调整 `frameNode` 输入。连接一个随时间变化的节点(如 `timerLocal()`)来播放连续动画;传入一个固定的浮点数(如 `float(5)`)来显示静态的某一帧。同时,`countNode` 必须精确匹配雪碧图的网格尺寸(如 `vec2(8, 8)`),否则会导致取景错误。
代码示例
1
2// 以10FPS的速度,循环播放一个4x4雪碧图的16帧
3const frameNode = timerLocal().mul(10).floor().mod(16);
4
5// 计算当前动画帧对应的UV坐标
6const animatedUV = spritesheetUV( vec2(4, 4), uv(), frameNode );