Tipps zum Optimieren der GPU-Renderleistung

Auch wenn GPU-Rendering die Leistung für SWF-Inhalte deutlich verbessern kann, spielt der Entwurf des Inhalts doch auch eine große Rolle. Denken Sie daran, dass Einstellungen, die in der Vergangenheit mit Softwarerendering gut funktioniert haben, mit GPU-Rendering nicht immer genauso gut funktionieren. Mit den folgenden Tipps können Sie mit GPU-Rendering eine gute Leistung erzielen, ohne dass es beim Softwarerendering zu Leistungseinbußen kommt.

Hinweis: Mobile Geräte, die Hardwarerendering unterstützen, rufen SWF-Inhalte häufig über das Internet auf. Deshalb ist es am besten, diese Tipps beim Erstellen von SWF-Inhalten zu befolgen, um sicherzustellen, dass auf allen Bildschirmen die bestmöglichen Ergebnisse erzielt werden können.
  • Vermeiden Sie die Verwendung von wmode=transparent oder wmode=opaque in HTML-eingebetteten Parametern. Diese Modi können zu schlechteren Leistungen führen. Es kann dabei sowohl bei Software- als auch bei Hardwarerendering auch zu einem leichten Verlust bei der Audio-Video-Synchronizität kommen. Außerdem unterstützen viele Plattformen das GPU-Rendering nicht, wenn diese Modi verwendet werden, wodurch die Leistung deutlich verschlechtert wird.

  • Verwenden Sie nur die normalen und Alpha-Mischmodi. Vermeiden Sie die Verwendung anderer Mischmodi, besonders des Ebenenmischmodus. Nicht alle Mischmodi können beim GPU-Rendering originalgetreu wiedergegeben werden.

  • Wenn eine GPU Vektorgrafiken darstellt, werden sie in Netze aus kleinen Dreiecken zerlegt, bevor sie gezeichnet werden. Dieser Prozess wird Parkettierung genannt. Die Parkettierung ist mit kleinen Leistungseinbußen verbunden, die mit zunehmender Komplexität der Form größer werden. Um die Leistung so wenig wie möglich zu beeinträchtigen, vermeiden Sie Morph-Formen, die beim GPU-Rendering in jedem Bild parkettiert werden.

  • Vermeiden Sie sich selbst schneidende Kurven, sehr dünne Kurvenformen (z. B. einen dünnen zunehmenden Mond) und komplizierte Details an den Rändern einer Form. Die Parkettierung dieser Formen in Dreiecke ist für die GPU aufwändig. Zur Veranschaulichung stellen Sie sich zwei Vektoren vor: ein Quadrat der Größe 500 × 500 und ein zunehmender Mond der Größe 100 × 10. Das große Quadrat kann von der GPU problemlos dargestellt werden, da es lediglich aus zwei Dreiecken besteht. Um die Kurve des zunehmenden Mondes zu beschreiben, sind jedoch zahlreiche Dreiecke erforderlich. Das Darstellen dieser Form ist deshalb komplizierter, obwohl weniger Pixel beteiligt sind.

  • Vermeiden Sie große Änderungen beim Skalieren, da diese Änderungen ebenfalls dazu führen können, dass die GPU die Grafiken erneut parkettiert.

  • Vermeiden Sie das Überzeichnen, wenn möglich. Überzeichnen ist das Überlagern mehrerer grafischer Elemente, sodass sie einander verdecken. Mit dem Softwarerenderer wird jedes Pixel nur einmal gezeichnet. Beim Softwarerendering gibt es in der Anwendung deshalb keine Leistungseinbußen, unabhängig davon, wie viele grafische Elemente einander an dieser Pixelposition überlagern. Der Hardwarerenderer dagegen zeichnet jedes Pixel für jedes Element, auch wenn dieser Bereich durch andere Elemente verdeckt wird. Wenn sich zwei Rechtecke überlappen, zeichnet der Hardwarerenderer den überlappten Bereich zweimal, während der Softwarerenderer diesen Bereich nur einmal zeichnet.

    Auf dem Desktop, wo der Softwarerenderer verwendet wird, bemerken Sie deshalb normalerweise keine Leistungsverschlechterung beim Überzeichnen. Bei Geräten, die GPU-Rendering verwenden, kann sich die Verwendung vieler überlappender Formen dagegen nachteilig auf die Leistung auswirken. Es hat sich bewährt, Objekte aus der Anzeigeliste zu entfernen anstatt sie zu verbergen.

  • Verwenden Sie kein großes gefülltes Rechteck als Hintergrund. Legen Sie stattdessen die Hintergrundfarbe des Stage-Objekts fest.

  • Vermeiden Sie möglichst den standardmäßigen Bitmapfüllmodus Bitmapwiederholung. Verwenden Sie stattdessen den Bitmapclampmodus, um eine bessere Leistung zu erzielen.