动画与时序
Canvas 动画的本质是:按 vsync 把场景图光栅化到 backing store,再交给合成器。requestAnimationFrame 只保证「尽量跟着刷新」,不保证 16.7ms,更不保证你的绘制能在一帧预算里结束。
文档清单
| 文档 | 解决的问题 |
|---|---|
| rAF 离屏与双缓冲 | 时间基准、暂停、脏区、离屏提交、真正的双缓冲是什么 |
| 精灵图时间轴与录像 | 按时间播帧、captureStream vs 离线编码 |
先立三条
- 动画循环只驱动 场景状态,绘制是纯函数
render(scene, t)。 - 用 rAF 的
timestamp做积分,不用Date.now(),也不用相邻两帧的墙钟差去做物理(后台节流后会跳变)。 - 浏览器已经在合成器侧有缓冲;你再套一层离屏,是为了 场景构建与提交解耦,不是为了对抗撕裂。