我有一个包含多个光节点的场景。通常,我的游戏在2016年末的Macbook Pro上可以60fps正常运行。 (该游戏适用于Mac,而非iOS)。添加轻节点时,帧速率下降,并且一旦有4-5个节点,它的速度将非常缓慢且缓慢。我正在这样创建它们:

let light: SKLightNode = SKLightNode()
light.falloff = 4.5
addChild(light)


我知道光照效果需要很大的渲染能力,但是我对它们引起问题的速度感到惊讶。

关于如何提高性能的任何想法?

最佳答案

SKLightNodes非常注重性能,特别是在较旧的设备上。

例如,如果您在iPhone 5的1个SKScene中使用2个LightNodes,则帧速率将下降至20FPS,并使游戏基本上无法播放。

我最近在一个场景中制作了一个有4个灯光的游戏,在iPhone 7上一切正常,但在较旧的设备上无法使用。

因此,IMO每个Sprite / Scene最多只能使用1个SKLightNode,否则可能最多2个,否则性能会非常差。我不确定macOS上的性能如何,但是您使用4-5灯描述它的方式实在太多了。因此,您不能做太多事情来提高性能。

SKLightNode performance issues

WWDC会话视频SpriteKit中的新增功能提到,如果在同一Sprite上有多个光源,则可能会获得不到60 FPS的速度。

希望这可以帮助

08-27 19:04