【问题标题】:Why is having multiple objects with 3D rotation causing a dramatic performance loss为什么有多个具有 3D 旋转的对象会导致显着的性能损失
【发布时间】:2012-08-16 22:19:52
【问题描述】:

目前,我正在开发一款原型赛车游戏,旨在获得尽可能接近 3D 图形的效果,而无需使用 Flash Player 11 和/或 DirectX。为此,我选择使用 RotationX、RotationY 和 RotationZ 来给我想要的效果。为了使建筑物变为 3D,我创建了同一对象的四个实例并适当地旋转/索引它们。

这很好用,直到舞台上有很多这些旋转对象 - 然后问题就从性能开始了。也就是说,没有。

这里有一个例子: http://www.hosted101.net/car/Racing3D.html

如果你跟踪周围的轨道,你会发现舞台上的东西越多,性能就会越差。

我已采取的尝试和纠正此问题的阶段包括:

1) 禁用 Z 排序 - 这并没有提高性能(令我惊讶)

2) 禁用对象 RotationZ 以跟随相机 - 同样,性能没有提高

3) 用矢量图形交换位图图形 - 再次遗憾的是,性能没有提高

究竟是什么导致了这些戏剧性的表现?

只是舞台上有这么多带有 3D 旋转的物体吗?

【问题讨论】:

    标签: actionscript-3 flash


    【解决方案1】:

    在这里回答我自己的问题,以防有人遇到类似的泡菜:

    问题与游戏的 FPS 有关。将其设置为(最初)120 对于低端机器来说是不可能匹配的,因为会看到如此不同的结果。当下降到 60 时,它仍然太高,因此当舞台上有多个旋转物体时,FPS 下降得太低,产生了断断续续的效果。

    将 FPS 最大值设置为 24 并将最大速度/转弯加倍后,游戏现在可以正常运行了。

    道德:如果您的目标是低规格机器,则 FPS 越低越好。

    【讨论】:

      【解决方案2】:

      您发布的链接以恒定的 60 FPS 为我运行。

      如果这些更改都没有帮助,您的性能瓶颈可能在其他地方,请尝试使用 TheMiner 之类的内容进行分析。

      您也可以尝试将 wmode 设置为“direct”或“gpu”,我注意到您使用的是“window”。

      由于您不需要任何这些建筑物和树木上的任何鼠标事件,请确保在所有这些精灵上将 mouseEnabled mouseChildren 设置为 false。

      这些是我想到的,希望能有所帮助。

      【讨论】:

      • 由于游戏最终将用于发行,我们无法做到这一点。我会调查你的选择。
      猜你喜欢
      • 1970-01-01
      • 2011-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-13
      • 1970-01-01
      相关资源
      最近更新 更多