SKLightNode-Leistungsprobleme

Ich habe mit experimentiertSKLightNode in SpriteKit (neu in iOS8) und selbst in einem wirklich einfachen Testfall habe ich eine schreckliche Leistung erzielt. Zum Beispiel mit einemeinzelne Lichtquelle auf eineneinfarbigSKSpriteNode Ich bekomme13,2 FPS auf einenIPad der 3. Generation. Wenn ich eine hinzufügenzweite LichtquelleEs fällt zu einem Abgrund7,7 FPS.

Das WWDC-SitzungsvideoWas ist neu in SpriteKit? Erwähnungen, dass Sie möglicherweise weniger als 60 FPS erhalten, wenn Sie mehr als ein Licht auf dem gleichen Sprite haben, aber ich kann nicht einmal 60 FPS mit einem bekommen.Hier ist der relevante Abschnitt.

Hier ist meine Testszene in kürzester Zeit (sie beginnt mit einer Lichtquelle und kann durch Tippen auf weitere Lichtquellen ergänzt werden):

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)
        }
    }

}

Hier sind einige Screenshots davon, die auf meinem iPad der 3. Generation ausgeführt werden:

Und so sieht die Registerkarte "Leistung" aus, nachdem Sie auf die Schaltfläche "Analysieren" geklickt haben, wenn sie mit einer einzelnen Lichtquelle ausgeführt wird:

Es ist offensichtlich an die GPU gebunden, aber ich versuche herauszufinden, ob ich einfach etwas Schreckliches falsch mache oder ob dies nur ein Problem mit der Beta ist, das (hoffentlich) bis zur Veröffentlichung behoben sein wird. Ich benutze derzeit Xcode6-Beta5.

AKTUALISIEREN

Ich habe mein iPhone 5S auf iOS8 aktualisiert und dort das Gleiche ausprobiert, und es lief mit 60 fps und 8 Lichtquellen einwandfrei. Ich denke, dies ist nur ein Problem, da die GPU des iPads der 3. Generation der Aufgabe einfach nicht gewachsen ist. Ich werde es nach der Veröffentlichung der nächsten Beta erneut versuchen und prüfen, ob sich etwas ändert, nur für den Fall.