我正在使用Alternativa3D 7.8引擎编写AS3编码的游戏,它只是没有我希望用它实现的FPS,我试图完全理解为什么。我知道在场景中使用3D对象会对性能产生很大的影响,但我只使用非常有限数量的3d对象,而且每个对象的多边形数都相对较小。
我想知道是否还有其他类似内存泄漏的事情导致在场景的实际渲染之上。
我想找到一种方法来查看在我的代码中如何分配性能,以查看是否存在导致此问题的某些区域。我通常只能在我的计算机上获得大约10-15 FPS的速度,如果可能的话,我希望将其提高到20-24或更高。
答案 0 :(得分:1)
我认为这个问题不应该被贬低,尽管它有点宽泛。 OP正在询问有关AS3应用程序的一般性能提示。
在没有看到他的代码的情况下,我们无法给出具体的指示,但我们仍然可以为他提供更一般的提示/技巧。这里有一些分析,很一般:
我认为你的性能问题不一定与你的3D有关,尽管它们可能会。即使游戏世界出现在屏幕上,即使鼠标移动速度也非常慢,而我暂停它的速度会提高帧速率 - 这表明你在每一帧都进行了大量的迭代和计算。
我从这开始:你的主游戏循环中是否有任何计算密集的循环?例如,我看到你正在使用海平面,因为它会影响陆地 - 你是否正在做一些事情,比如在每一帧上计算你所有的水属性?
拥有大量“3D”对象不一定是个问题,因为3D对象只是一组点。它们比2d对象更加密集,因为你包含了一个额外的维度,但没有那么强大,以至于一些3d对象会导致这种性能。我不认为他们是你的问题(虽然我可能是错的)。
相反,这是你正在进行的计算。寻找循环,弄清楚你可以注释掉什么,并立即看到更好的性能,然后一旦你隔离它,看看你可以做些什么来缓存这些计算的输出,这样你就不必在每一帧上重新计算它们
干杯, MB