Artikel mit Schlagwort ‘ Performance’

TouchPhysics auf Video

Veröffentlicht in Allgemein, Umsetzung am 11. Juli 2010 von Schreibe den ersten Kommentar

Hier ein kleines Video unserer Physik-Anwendung, die wir inzwischen “TouchPhysics” genannt haben. Die Software läuft auf dem Evoluce-ONE Multitouch Tisch und wird von zwei Nutzern bedient:

Funktionen von TouchPhysics

  • Gestenerkennung für Schiefe Ebene und Kugel
  • Physik-Simulation (Physics Engine)
  • Skalieren der Objekte mit zwei Fingern
  • Ändern der Größe und des Winkels der Schiefen Ebene mit Schiebereglern
  • Ändern des Gewichts der Kugel per Gewichtskraftpfeil
  • Radierer, um einzelne oder alle Objekte zu löschen
  • Mehrere Fenster mit Erklärungen und Formeln
  • Dynamische Berechnung der Formeln, je nach Gewicht, Winkel, etc. desjenigen Objektes, das als letztes verändert wurde

Performance Probleme

Leider konnten wir unser grundsätzliches Performance-Problem nicht lösen. Deshalb reagiert die Anwendung im Video zum Teil etwas langsam. Das liegt zum einen an Flash, was sehr viel Systemressourcen frisst und bei einer FullHD-Auflösung  an seine Grenzen stößt. Zum anderen sind auch die Berechnungen der Physik-Engine verknüpft mit einer aufwendigen grafischen Darstellung sehr rechen-intenstiv.
Vermutlich könnte sich Beides durch eine ausgeklügelte Programmierung mit Fokus auf gute Performance beheben lassen. Da unsere Anwendung aber nur eine Art Prototyp ist, der ein Interaktions-Konzept demonstriert, werden wir es allerdings dabei belassen. Als Nicht-Programmierer sind wir schon froh darüber, dass wir es geschafft haben, unsere Ideen in funktionierenden Code umzusetzen.

Kleine Helfer – große Wirkung

Veröffentlicht in Programmierung, Umsetzung am 18. Juni 2010 von Schreibe den ersten Kommentar

Die Entwicklung und vor Allem das Programmieren unserer Multitouch-Anwendung schreitet unweigerlich voran. Zwar gibt es immer wieder Rückschläge und Herausforderungen aber irgendwie geht’s immer. Neben dem $1Recognizer und Box2D haben wir inzwischen einige andere AS3-Klassen eingebunden, die maßgeblich zu unserer Anwendung beitragen.

Animationen mit GreenSock

GreenSock Logo

GreenSock Logo

GreenSock ist eine Sammlung von Klassen um schnell und einfach Objekte per ActionScript zu animieren. GreenSock TweenMax bietet z.B. Effekte wie Ein/Ausblenden, Animieren, Drehen, Skalieren, etc. Die Bibliothek ist verlässlich, einfach zu nutzen und wird von einer aktiven Community ständig weiter entwickelt.

.

Schieberegler mit SliderUI

Die SliderUI von Matt Przybylski ist eine Klasse um Schieberegler (Slider) in Flash zu generieren. Somit können recht schnell eigene Slider gebastelt werden, ohne auf die vorgefertigten Komponenten von Flash zurückgreifen zu müssen. SliderUI bietet u.A. Methoden um die Position des Schiebereglers auf der Skala zu bestimmen oder Start- und Endwerte festzulegen.
Komplett “Out-of-the-Box” konnte die Klasse allerdings nicht verwendet werden, weil sie für die Verwendung mit einer Maus entwickelt wurde. Es waren noch einige kleine Anpassungen an unser Multitouch-Framework GestureWorks nötig.

Update: Es gibt die Schieberegler-Klasse auch in der Version SliderUI v1.5. Die neue Version beinhaltet u.A. ein Flash-CustomEvent, was z.B. bei unserer Anwendung zum Einsatz kommt. Mit einem CustomEvent lässt sich in Flash die Kommunikation zwischen unabhängigen Objekten realisieren.

Performance-Überwachung mit SWF Profiler

SWF Profiler Screenshot

SWF Profiler Screenshot

Ein Thema plagt uns leider immer noch: Die Performance unserer Anwendung. Leider sind die  Berechnungen und Kollisions-Erkennungen von Box2D sehr rechen-intensiv. Hinzu kommen eine Full-HD-Auflösung (1920×1080), zahlreiche grafische Elemente, zahlreiche externe Klassen und viele interne Funktionen. Das Alles macht die Physik-Lernsoftware mit jedem gezeichneten Element spürbar langsamer. Da unser Konzept aber eigentlich nur zwei Elemente (Kugel und Schiefe Ebene) vorsieht, werden wir uns nicht ausgiebig mit dem Thema Performance-Optimierung kümmern.
Ein Tool zum Überwachen der Performance von Flash haben wir dennoch eingebaut. Der SWF Profiler lässt sich einfach in bestehende Projekte integrieren und zeigt z.B. die aktuelle Frame-Rate, sowie die Arbeitsspeicher-Nutzung an.

GestureWorks und Hardwarebeschleunigung

Veröffentlicht in Programmierung, Umsetzung am 31. Mai 2010 von Schreibe den ersten Kommentar

FMF vs. GestureWorks

Heute haben wir uns entschieden statt dem Flash Multitouch Framework (FMF) von EVOLUCE, das kommerzielle GestureWorks-Framework zu verwenden. Dieses bietet u.A. eine Unterstützung für die Bühnengröße 1920×1080 (Full-HD) und ist einfacher zu verwenden. In dieser Entscheidung sind wir unseren Mit-Studenten gefolgt, die seit letzter Woche ebenfalls GestureWorks statt FMF verwenden.

Flash Hardware Beschleunigung

Hardwarebeschleunigung in Flash

Hardwarebeschleunigung in Flash

Wir haben heute außerdem eine Lösung für die Performance-Probleme von Flash gefunden. Unser erster MT-Prototyp (mit FMF) hatte auf dem MT-Tisch z.T. große Probleme mit der Leistung. Die Anwendung lief sehr ruckelig und die Objekt-Erkennung war langsam und unpräzise. Die Lösung dafür war klein aber fein. Unter den Veröffentlichungs-Einstellungen bietet Flash, im Bereich “Erweitert”, die Möglichkeit eine Hardwarebeschleunigung festzulegen. Mit “Stufe 2 – GPU” lief unsere Anwendung flüssig und ohne Verzögerung auf dem Evoluce-ONE. Schön, dass es manchmal auch einfache Lösungen gibt ;-)