Nach langer Abwesenheit habe ich auch mal wieder was zu zeigen. Diesmal kein Spiel aber etwas was bestimmt auch nicht langweilig ist. Als Thesis-Arbeit habe ich eine hybride GPU beschleunigte (2D) Grafik-API für den Flash Player gebaut. Dabei handelt es sich um ein C++ Programm welches den Flash Player als Plugin lädt und auf diese Weise OpenGL und Flash kombiniert. Das tolle daran: man kann aus dem Flash Programm heraus den OpenGL Hintergrund manipulieren :D. Verpackt ist das ganze als ein Klassenpaket damit man sich als AS3 Programmierer nicht erst noch OGL anlernen muss (außerdem konnte man so besser optimieren). Weiter ist das API auch mit normalen Flash-Klassen implementiert, was heißt, dass man den resultierenden Flash-Film auch im normalen Flash Player abspielen kann (dann aber ohne GPU-Unterstützung natürlich ;).
Nach zwei mörderischen Wochen WINAPI-Hackereien ist es mir dann auch gelungen ein JavaApplet so zu manipulieren, dass es den ganzen Inhalt wieder zurück in den Browser holt. Der Nutzer braucht also nicht unbedingt nen zustäzlichen Download machen sondern lediglich Java und etwas "vertrauen" in mein Applet.
Da das Adobe Plugin zum Abspielen des Flash Programms benutzt wird ist das ganze voll kompatibel zu Flash APIs, IDEs, Debugger, Profiler, ...
Hier mal ein Bild des Szenen-Aufbaus:
- a) C++ Anwendung / Browser+JavaApplet (mit C++ DLL über JNI)
- b) OpenGL gerenderte Szene (mit zusätzlichen AS3 Szenegraph)
- c) Flash gerenderte Szene (mit normalen AS3 Szenegraph)
- d) Das Ergebnis für den Nutzer
Link: http://fxstage.cschnack.de
Vielleicht gibt es hier ja auch den einen oder anderen Leid geplagten Flash-Progger ;)
PS: So jetzt bleibt nur zu hoffen, dass Adobe noch ein bisschen mit GPU-Beschleunigung wartet ;)