03 时间、交互与重复
uniform:把时间传进来
JavaScript 每帧传入秒数。暂停后拖动时间,画面跟着跳。
-44
112
010
习题
每个像素运行一次拖动数字,或直接改代码
JS 这一侧
gl.uniform2f(uResolution, …, …)
gl.uniform1f(uTime, 0.00)
// 每一帧(requestAnimationFrame)
const seconds = elapsed + jump
gl.uniform1f(uTimeLocation, seconds)
gl.drawElements(...)Shader 不会计时,也不记得上一帧。JS 每帧传入新的 uTime,同一个时间永远算出同一画面。
试一试
- 暂停,再调「跳到时间」,画面随时间跳转
- 把速度调成负数,波纹往回走