senäh

17senäh und so…

Flash/AS3
27. Jun 2011
Kommentare: 4

Molehill/Away3D 4.0 Stresstest

Kategorien: Flash/AS3 | 27. Jun 2011 | Kommentare: 4

Motiviert durch Dirk habe ich mich ein paar Stunden hingesetzt und ein paar Stresstests mit Away 4.0 „Broomstick“ durchgeführt. Wir waren etwas verwundert, dass bei ein paar einfachen Planes mit insgesamt ~2000 Polygonen die Framerate auf unter 20 fps fällt. Dabei zeigen andere Beispiele, dass man bei 18000 Polygonen und mehr stabile 30 fps erreichen kann. Der Grund: Die Performance scheint zu einem Großteil nicht nur von den Polygonen, sondern von der Anzahl an Away3D-Objekten abzuhängen. Hier meine Testfälle:

Stresstest Cubes PerlinNoise

Damit  die Tests auch nett anzusehen sind, habe ich etwas mit PerlinNoise gespielt 😉 Ihr seht 400 Würfel mit 4800 Polygonen, welche durch PerlinNoise bewegt und eingefärbt werden. Die Framerate liegt bei ~23 fps. Bei diesem und bei allen anderen Tests verwende ich übrigens zwei Lichtquellen.

Bild für alle Nicht-Molehill-User:

StressTestCubesPerlinNoise

StressTestCubesPerlinNoise

SWF für alle Molehill-User. (Sorry, der Link scheint defekt und die swf verschollen zu sein.)

Stresstest Planes PerlinNoise

Jetzt das Gegenbeispiel. Exakt der selbe Test nur mit 400 Planes bei 800 Polygonen. Das verblüffende Resultat: Auch hier liegt die Framerate bei ~23 fps, obwohl 4000 Polygone weniger dargestellt werden.

Bild für alle Nicht-Molehill-User:

StressTestPlanesPerlinNoise

StressTestPlanesPerlinNoise

SWF für alle Molehill-User.

Stresstest Cubes Rotation

23 fps bei 400 Würfel empfand ich als ziemlich wenig. Ich dachte mir, dass meine PerlinNoise-Funktion viel Performance frisst und habe sie rausgeworfen. Stattdessen habe ich den den ObjectContainer3D, in dem alle  Würfel liegen, rotieren lassen. Erstaunlicherweise frisst das jedoch noch mehr Performance. Die Framerate lag nun bei ~21 fps.

Bild für alle Nicht-Molehill-User:

StressTestCubesRotation

StressTestCubesRotation

SWF für alle Molehill-User.

Stresstest Planes Rotation

Und noch einmal der gleiche Test mit 400 Planes. Wieder ist der Plane-Test genauso schnell wie der Cube-Test, obwohl weniger Polygone dargestellt werden.

Bild für alle Nicht-Molehill-User:

StressTestPlanesRotation

StressTestPlanesRotation

SWF für alle Molehill-User.

Fazit

An dieser Stelle wollte ich eigentlich noch einen Test mit einem einzelnen High-Poly-Model bringen. Leider habe ich es nicht geschafft eine .obj oder .3ds-Datei von Broomstick parsen zu lassen. Anscheinend wurden die Parservorgänge bereits mehrmals umgestellt und verändert. Broomstick ist halt noch eine Beta-Version. Sobald Away3D 4.0 final ist, werde ich solch einen Test nachholen.

Insgesamt bin ich von Molehill etwas enttäuscht. Möglicherweise habe ich auch aber etwas falsch gemacht. Meinen Quellcode könnt ihr hier herunterladen. Vielleicht findet ihr ja einen fiesen Performancefehler 😉

Dafür hat mir die Benutzung von Away3D ziemlich gut gefallen. Abgesehen von den Model-Parsern hatte ich keinerlei Probleme und die Dokumentation ist recht umfangreich. Hoffentlich findet sich in Zukunft noch ein Workflow bei dem die Performance nicht so sehr von der Objektanzahl abhängt.

Molehill performance is unsatisfactory.

Molehill performance is unsatisfactory.

Autor: Pipo

...kommt ursprünglich aus der Designerecke, ist aber im Laufe seines Studiums in die Webentwicklung gestolpert. Kann sich seit dem nicht so richtig entscheiden wo er hingehört und wagt deswegen vielleicht die Flucht nach vorne in ein komplett neues Gebiet. Vielleicht Management? Niemand weiß es. Auch er nicht.