2017-04-17 8 views
3

iOS SpriteKit API ist einfach zu bedienen. Wenn ich jedoch massive Aktionen (ca. 5000+) auf vielen SKSpriteNode (ca. 2000+) gleichzeitig starte, fallen die fps sehr niedrig. Aber die GPU-Nutzung in dieser Situation ist weit weniger als CPU-Auslastung. Gibt es eine Methode, um Aktionen auf GPU zu beschleunigen? Oder gibt es eine Möglichkeit, Bilder mit Moving-, Scaling-, Fading- und Drehaktionen unter MetalKit zu implementieren?Wie beschleunigt man massive SKNode-Aktionen?

+0

Ja Metalkit sollte Ihnen die Möglichkeit geben, Ihre Berechnungen fein abzustimmen. –

+0

@ Jean-BaptisteYunès Wie kann ich SpriteKit Aktionen mit MetalKit integrieren? – imxieyi

+0

Nicht sicher, aber ich denke, Sie können nicht ... –

Antwort

0

Sie können Shader auf Knoten verwenden, um ihr Aussehen zu ändern. Dies wäre vorteilhaft für das Bewegen, Skalieren, Ausblenden und Drehen von Knoten. Ich würde normalerweise vorschlagen, SKActions für diese zu verwenden, da sie sehr grundlegende Funktionen sind, die die CPU normalerweise anstelle der GPU handhaben würde, und in Ihrem Fall würde ich Ihnen empfehlen, zu überprüfen, warum Sie Änderungen an einigen 2000 Knoten gleichzeitig vornehmen müssen.

Wenn Sie so viele Knoten haben, können Sie sie wahrscheinlich durch einen SKEmitterNode ersetzen. Es ist viel schwieriger, PhysicsBodies mit den einzelnen Emissionen zu verwenden, aber sie sind viel ressourcenschonender als die Verwendung einzelner 5000 Knoten.