deltaTime
deltaTime
在 TSL 着色器中提供自上一帧渲染以来所经过的时间(以秒为单位),是创建帧率无关动画和物理模拟的基石。
核心优势
它将手动计算和传递时间差的过程完全自动化。开发者无需任何 JS 端操作,即可在着色器中轻松实现平滑、一致的动画,确保动态效果在任何硬件性能(FPS)下都表现相同。
常见用途
创建帧率无关的位移、旋转或缩放动画。
在着色器内部实现简单的物理效果,如重力、阻力。
以基于真实时间的、一致的节奏驱动周期性效果,如水波、脉冲或闪烁。
构建用于复杂效果的、基于着色器的内部计时器。
如何调整
此节点的值不可调整;它是由渲染器提供的、对上一帧耗时的客观度量。关键在于如何“使用”它:将你的任何变化率(如速度、角速度)与 deltaTime 相乘,即可将“每帧变化量”转换为“每秒变化量”,从而实现帧率无关的平滑动画。
代码示例
1// 累加时间,创建一个连续的动画驱动器
2totalTime.addAssign( deltaTime );
3
4// 使用累加的时间来驱动波浪运动
5// 乘以速度因子确保波浪随时间稳定传播
6const wave = sin( distanceToCenter * frequency - totalTime * speed );