EXAMPLE 20B · THREE.QUARKS 0.16.0

同类火焰,两种组织方式

左侧原生 Points 和预分配 TypedArray;右侧 three.quarks 的 ParticleSystem、ConeEmitter、ApplyForce 与 BatchedRenderer。两侧都使用本地程序生成的柔圆纹理。

原生 Three.js

应用自己管理出生、年龄、运动和 BufferAttribute。
活粒子—
JS 更新—
绘制调用—
position 上传—

three.quarks@0.16.0

库管理粒子状态和实例缓冲;每帧调用 BatchedRenderer.update(dt)。
活粒子—
库更新—
绘制调用—
缓冲更新库管理

共同参数

两条路线的粒子数、采样和图元大小接近但不逐像素相同;两个 WebGL 画布共享浏览器资源。计时只包住各自的 JS 更新,不是 GPU 基准测试。