time
time
一个自动更新的节点,为着色器提供一个随时间线性增长的浮点数(秒),是所有时间驱动动画的基础。
核心优势
极大地简化了动画的创建。它自动处理时间更新,开发者无需在 JS 中手动管理时钟和 uniform,使动画逻辑完全封装在着色器中,代码更简洁、声明性更强。
常见用途
驱动顶点位移,模拟水波、旗帜飘动等效果。
制作滚动纹理,用于表现熔岩、瀑布或传送带。
通过周期函数(如 sin)驱动材质属性,实现闪烁、脉冲或呼吸动画。
如何调整
通过对 time 的输出值进行数学运算来调节。乘以一个常数(如 `time.mul(5)`)可以改变动画速度;将其传入一个周期函数(如 `sin(time)`)可以将线性运动转换为往复振荡。
代码示例
1// 将线性时间转换为周期性波动,并沿法线方向应用位移
2const animatedPosition = position.add(
3 normal.mul( sin( time.mul( 3 ) ).mul( 0.1 ) )
4);
5
6material.positionNode = animatedPosition;