效果对比
左:原生 Spine 渲染 | 右:VAT(顶点动画贴图)渲染
同场景 200 个角色同屏,画面表现一致。
测试环境
测试机器
- 设备:Apple M4 Pro / 24GB 内存
- 浏览器:Chrome,性能面板设为低端机模拟(CPU 降频 + 内存限制)
测试负载
- 角色数量:200 个同屏 spine
- 三角面总量:约 28,840(两边一致,等同负载)
- 采样方式:连续 1729 帧稳定采样(排除首帧加载与 GC 抖动)
结果展示
1. 帧时间(ms,越低越好)
指标 原始 VAT 提升
----------------------------------------
平均帧 33.89 4.88 6.9×
p50 33.1 4.3 7.7×
p90 37.9 8.2 4.6×
p95 40.5 9.8 4.1×
p99 45.0 12.5 3.6×
最差帧 78.8 19.1 4.1×
2. 掉帧分布
区间 原始 VAT
----------------------------------------
超 4ms 100% 54%
超 8ms 100% 10%
超 16ms(掉帧) 100% 0.1%
原始路径每一帧都越线,VAT 1729 帧只有 2 帧掉帧。
3. 渲染管线
指标 原始 VAT 变化
--------------------------------------------
Render 耗时(ms) 29.98 4.40 ↓ 6.8×
Draw Call 203 5 ↓ 40×
三角面 28847 28841 一致
4. 显存
指标 原始 VAT
--------------------------------
纹理 20.39 MB 20.51 MB
Buffer 6.98 MB 6.94 MB
显存几乎持平,性能换显存的代价没有发生。
一句话结论
200 角色同屏,VAT 把渲染耗时从 约 34ms 降到约 5ms(6.9×),Draw Call 从 203 降到 5(40×),掉帧率从 100% 降到 0.1%,显存零额外开销。




