Computer Graphics Animation: Free Radicals; Return Of The O2!

Nach einem Semester voller aufregender Aufgaben und noch aufregenderen Deadlines neigt sich mittlerweile wieder alles dem Ende zu. Dieses Semester sind sogar einige schöne Dinge dabei entstanden, die visuell präsentierbar sind, unter anderem diese kleine Animation mit dem Namen „Free Radicals, Return Of The O2!

Diese Animation wurde im Rahmen der Übung zur LVA „Computer Graphics“ im Bachelorstudium der Informatik an der JKU Linz erstellt. Leider (oder zum Glück, da die Deadline dennoch existierte), musste man ein fertiges Framework verwenden, das die Übungsinhalte möglichst genau abbildet. Dieses Framework funktioniert im Normalfall sehr gut, sobald man aber etwas anderes machen will, kämpft man wie so oft einige Zeit lang, um alles so zu machen, wie es sich das Framework vorstellt. Am Ende hat dann aber dennoch alles funktioniert und diese kleine Animation konnte in enger Teamarbeit mit Simone Atzwanger entstehen.

Die Story

Viele Jahre lang waren die radikalen Sauerstoffatome gefangen. Nie konnten sie so herum fliegen wie sie es wollten. Doch nachdem sie ein Raumschiff entwickelt haben, wuchs ihr Hunger auf Freiheit plötzlich rasant an – die Maschine wurde aktiviert, der Motor hochgefahren und die Reise konnte beginnen! Auf dem Weg begegneten sie vielen Gefahren, verloren sogar knapp ihren rechten Scheinwerfer. Kurz vor dem Versagen ihres Raumschiffes schafften sie es aber dennoch, sicheres Land inmitten eines weiten Ozeans zu erreichen. Bei wolkenlosem Himmel begannen sie ihren Anflug, landeten und feierten ihre neu gewonnene Selbstbestimmung. Die Radikale sind wieder Frei!

Die Technik

Alles basiert auf dem oben genannten WebGL Framework, welches nicht verändert werden sollte. Ein Template wurde bereitgestellt. Durch die Mithilfe von Manuel Pöll konnten wir gute Typisierungsinformationen erhalten, wodurch die Entwicklung leichter wurde. Um die Animationen und die verschiedenen Szenen umzusetzen, entstanden unter anderem:

  • ein einfaches Animationsframework (Max),
  • eine Szenenverwaltung mit genauen Timings (Max),
  • viele Objekte und Texturen (sowohl manuell als auch aus Blender) (Simone) und
  • zusammengeführte Objekte mit getrennt animierbaren Teilen (das Raumschiff und die O2 Atome)(Simone)

Was hätte alles besser laufen können

Wir hätten gerne mehr gemacht und vielfältigere Effekte eingebaut! Leider ist der Zeitdruck trotzdem die hauptsächliche Limitierung, daher konnten wir nicht noch mehr dazu basteln. Wir hoffen dennoch, dass diese kurze Animation spannend ist und wünschen allen viel Spaß beim Ansehen!

OpenGL Injektor nun veröffentlicht!

Hochgeladen auf GitHub

Ich habe bereits einige Male über dieses Projekt geredet weil es mich weiterhin fasziniert, dass etwas derartiges möglich ist: Man kann sich (in diesem Fall unter Linux, aber eigentlich generell) beliebig in andere Programme hängen, Funktionen überschreiben und auf diese Weise den OpenGL Context stehlen und mit eigenen Bildern erweitern! Aus Interesse entstand ein Projekt, um sich in OpenGL Programme einzuklinken und eigene Daten anzuzeigen, die über die Grafikbibliothek Cairo gerendert werden sollten. Es sollten in diesem Ansatz beliebige Grafiken möglich werden, was mit dieser Grafikbibliothek auch sehr gut möglich geworden ist.

Der Rendering-Lag ist zwar etwas hoch, da nichts tiefer für diese Proof-of-Concept Arbeit optimiert wurde, aber dennoch ist diese Variante, sich in andere Programme zu hängen, eine spannende Möglichkeit. Später kann man diesen Ansatz natürlich auch noch erweitern, falls sich andere Möglichkeiten auftun.

Ich hoffe, jemand findet die Möglichkeiten hinter derartigen Tricks ebenfalls interessant und kann etwas mit diesem Projekt anfangen!

Liebe Grüße,
Max