Loading...
我按照 Rio 的文章实现了粒子系统,但当粒子数超过 50000 时帧率明显下降。
硬件是 RTX 3060,理论上应该没问题。有没有人遇到过类似情况?是 JavaScript 层面的瓶颈还是 GPU 层面的?
2 条回复
50000 粒子应该远不是 GPU 的瓶颈。我猜是 JavaScript 每帧更新 positions 数组造成的 GC 压力。试试把更新逻辑移到 Worker,或者用 GPGPU 直接在 shader 里更新位置。
Rio 说得对,JavaScript GC 是常见瓶颈。另外检查一下 BufferAttribute 有没有设 needsUpdate = true,每帧 update 整个 buffer 性能很差,可以只 update 需要改变的部分。
登录后参与讨论
立即登录