我有一个使用基本精灵批处理的粒子系统,其中粒子是根据递减的alpha值创建和销毁直到为0。
该系统在PC上性能相当差,在Xbox上非常差,在屏幕上显示大约一百个粒子之前会显著降低帧率。我已经阅读了关于如何提高性能的相关内容,但是否有任何实现它们的提示?例如,重用粒子而不是kill()最好的方法是什么?每个粒子的图像大小是否有影响?如果我不旋转每个粒子,这会有所帮助吗?
我已经尝试了每个建议,但没有得到任何显着的改善-是否有人有建议-是否值得基于GPU而不是CPU?
该系统在PC上性能相当差,在Xbox上非常差,在屏幕上显示大约一百个粒子之前会显著降低帧率。我已经阅读了关于如何提高性能的相关内容,但是否有任何实现它们的提示?例如,重用粒子而不是kill()最好的方法是什么?每个粒子的图像大小是否有影响?如果我不旋转每个粒子,这会有所帮助吗?
我已经尝试了每个建议,但没有得到任何显着的改善-是否有人有建议-是否值得基于GPU而不是CPU?
SpriteBatch
调用,特别是Begin
。 - Andrew RussellDraw
和粒子引擎Draw
方法的代码。每个粒子的方法调用可能会带来太多的开销。我希望也能看到你的Begin
调用。 - Andrew Russell