Tips voor het optimaliseren van de GPU-renderprestaties

Hoewel GPU-rendering de prestaties van SWF-inhoud aanzienlijk kan verbeteren, speelt het ontwerp van de inhoud een belangrijke rol. Het is goed mogelijk dat instellingen die altijd heel geschikt waren voor softwarerendering soms niet zo geschikt zijn voor GPU-rendering. De volgende tips kunnen u helpen goede prestaties te bereiken met GPU-rendering zonder negatieve invloed op de prestaties van softwarerendering.

Opmerking: Mobiele apparaten met ondersteuning voor hardwarerendering openen SWF-inhoud vaak via het web. Met oog op de beste prestaties op alle schermen verdient het daarom aanbeveling de volgende tips op te volgen wanneer u SWF-inhoud maakt.
  • Vermijd het gebruik van wmode=transparent of wmode=opaque in HTML-insluitparameters. Deze modi kunnen de prestaties nadelig beïnvloeden. Ze kunnen ook leiden tot iets minder nauwkeurige synchronisatie tussen geluid en beeld, zowel in software- als in hardwarerendering. Bovendien bieden vele platforms geen ondersteuning voor GPU-rendering als deze modi zijn geactiveerd, hetgeen een bijzonder nadelige invloed heeft op de prestaties.

  • Gebruik alleen de overvloeimodi Normaal en Alfa. Vermijd het gebruik van andere overvloeimodi, gebruik vooral de laagovervloeimodus niet. Niet alle overvloeimodi kunnen op getrouwe wijze worden gereproduceerd als ze geworden gerenderd met de GPU.

  • Wanneer een GPU vectorafbeeldingen rendert, worden de afbeeldingen eerst onderverdeeld in netten van kleine driehoekjes voordat ze worden getekend. Dit wordt tessellatie genoemd. Tessellatie beïnvloedt de prestaties slechts weinig, maar hoe complexer de vorm, hoe groter deze invloed. U kunt de invloed op de prestaties minimaliseren door morphingvormen te vermijden, omdat GPU-rendering deze tesseleert op elk frame.

  • Vermijd het gebruik van curven die zichzelf doorsnijden, bijzonder smalle gebieden met curven (zoals een smalle maansikkel) en ingewikkelde details langs de randen van een vorm. Het is lastig voor de GPU om dergelijke vormen te tesseleren in driehoekige netten. Dat valt te verklaren aan de hand van twee vectoren: een vierkant van 500 × 500 en een maansikkel van 100 × 10. Het is heel eenvoudig voor de GPU om het grote vierkant te renderen, dat bestaat immers gewoon uit twee driehoeken. Er zijn echter vele driehoeken nodig om de curve van de maansikkel te beschrijven. Daarom is het ingewikkelder om de vorm te renderen, ook al bestaat deze uit minder pixels.

  • Vermijd grote schaalwijzigingen, aangezien dergelijke wijzigingen er ook toe kunnen leiden dat de GPU de afbeeldingen nogmaals tesseleert.

  • Probeer overtekenen ook zoveel mogelijk te vermijden. Overtekenen verwijst naar het in lagen plaatsen van meerdere grafische elementen, zodat deze elkaar verbergen. Bij gebruik van de softwarerenderer wordt elke pixel slechts één keer getekend. In geval van softwarerendering worden de prestaties van de toepassing dus niet nadelig beïnvloed, ongeacht het aantal grafische elementen dat elkaar bedekt op de desbetreffende pixellocatie. De hardwarerenderer daarentegen tekent elke pixel voor elk element, ongeacht of andere elementen dat gebied bedekken of niet. Wanneer twee rechthoeken elkaar overlappen, tekent de hardwarerenderer het overlappende gebied twee keer, terwijl de softwarerenderer dat maar één keer doet.

    Op een bureaublad waarop gebruik wordt gemaakt van de softwarerenderer merkt u dus doorgaans niets van vertraagde prestaties wegens overtekenen. Een groot aantal overlappende vormen kan de prestaties van apparaten met GPU-rendering echter nadelig beïnvloeden. U kunt objecten beter uit de weergavelijst verwijderen in plaats van ze te verbergen.

  • Vermijd ook het gebruik van een grote gevulde rechthoek als een achtergrond. Stel in plaats daarvan de achtergrondkleur van het werkgebied in.

  • Vermijd, waar mogelijk, de standaardmodus voor het vullen van bitmaps door bitmaps te herhalen. U bereikt betere resultaten met de beperkingsmodus voor bitmaps.