我的代码管理着数千个粒子。这些粒子可以具有不同的纹理,并且这些纹理可以随时间变化。所以到目前为止我还没有使用过粒子系统。我只是在场景中逐个添加网格。
现在到了优化的时候,应用程序在旧计算机上运行缓慢。性能工具显示占用大部分CPU的任务是Three.js渲染方法。我想知道是否应该改变代码的结构以切换到粒子系统。
差异会很大吗? 粒子系统与独立网格管理相比有哪些优化?
由于
答案 0 :(得分:0)
如果没有额外的材料,很难说,但如果你查看Three.js code,你会看到如何管理粒子。
如果要切换每粒子的纹理,那么这可能是一个真正的性能杀手。尝试按纹理对粒子进行排序,这样每组粒子只能切换一次,而不是每粒子一次。
如果你对粒子进行深度排序,这可能是不切实际的,但是......我不知道你要做什么。如果是这种情况,并且如果您只使用少量不同的纹理,请考虑将它们全部放在一起" atlas"然后只需将UV贴图偏移量传递到每个粒子中,而不是交换采样器。这也会更便宜。