SKLightNode性能问题

我已经在SpriteKit( SKLightNode中的新增function)中尝试了SKLightNode ,即使在一个非常简单的testing案例中,我的performance也一直很差。 例如,使用纯色SKSpriteNode上的单一光源 ,我可以在第三代iPad上获得13.2 FPS 。 如果我添加第二个光源 ,则会降至7.7 FPS

WWDC会议videoSpriteKit的新增function提到,如果在同一个精灵上有不止一个指示灯,则可能会less于60 FPS,但我甚至无法获得60 FPS。 这是相关的部分。

这里是我的testing场景(从一个光源开始,更多可以通过点击添加):

 class GameScene: SKScene { override func didMoveToView(view: SKView) { let center = CGPointMake(size.width / 2.0, size.height / 2.0) let background = SKSpriteNode(color: SKColor.lightGrayColor(), size: size) background.position = center background.lightingBitMask = 1 addChild(background) let light = SKLightNode() light.position = center light.falloff = 1.0 light.lightColor = SKColor(hue: 0.62 , saturation: 0.89, brightness: 1.0, alpha: 0.4) light.shadowColor = SKColor.blackColor().colorWithAlphaComponent(0.4) addChild(light) } override func touchesBegan(touches: NSSet, withEvent event: UIEvent) { for touch: AnyObject in touches { let location = touch.locationInNode(self) let light = SKLightNode() light.position = location light.falloff = 1.0 light.lightColor = SKColor(hue: 0.62 , saturation: 0.89, brightness: 1.0, alpha: 0.4) light.shadowColor = SKColor.blackColor().colorWithAlphaComponent(0.4) addChild(light) } } } 

下面是我的第三代iPad上运行的屏幕截图:

1个光源2个光源

当单一光源运行时,单击“分析”(Analyze)button后,性能标签会显示如下:

性能分析

这显然是GPU绑定,但我想弄清楚的是,如果我只是做了一些可怕的错误,或者如果这只是一个testing版的问题(希望)会被发布时间清除。 我目前正在使用Xcode6-Beta5。


UPDATE

我升级了我的iPhone 5S到iOS8,并尝试了同样的东西,它运行在8F光源60FPS完美罚款。 所以,我猜这只是第三代iPad的GPU问题,而没有完成任务。 我会再次尝试下一个testing版发布后,看看是否有任何改变,以防万一。

这最终只是第三代iPad上的GPU问题,而没有完成使用SKLightNode的任务。 我现在使用最新版本的Xcode在iOS 8和iOS 8.1上testing(版本6.1(6A1052d)for iOS 8.1),结果相同。 我的testing代码在具有8个光源的iPhone 5s上以60FPS运行,所以代码本身似乎不是问题。