Vuforia4Unreal 2.0 – Open Source Edition

Seit dem letzten Blog über unser Vuforia4Unreal Plugin ist inzwischen einiges an Zeit vergangen. Genau genommen ein Jahr, zwei Monate und zwei Tage… . Und genau ein Jahr lang hat es gedauert, bis wir unser Plugin wieder aus der Schublade geholt, es aufpoliert, auf den neusten Stand gebracht und erweitert haben, um es nun als kleines Open Source Projekt zu veröffentlichen. Heute möchten wir daher kurz die technischen Neuerungen unseres Vuforia4Unreal Plugins und einige unserer Millionen von Ideen für das Plugin präsentieren. Ich hoffe es wird spannend.

Vuforia4Unreal Plugin

 

Vuforia4Unreal ein „echtes Plugin“ und was es sonst so neues gibt

Ok, hm wir müssen an dieser Stelle wohl zugeben, dass wir bei der ersten Präsentation des Plugins ein wenig geflunkert haben. Damals, vor einem Jahr nämlich, war das Vuforia4Unreal Plugin noch kein Plugin sondern ein Unreal Projekt. Im Grunde ist egal, ob unser AR Code nun in einem Projekt oder als Plugin seinen Zweck erfüllt, aber um das ganze als Open Source Projekt zu starten, zu warten und auch aus Sicht der Usability, ist ein eigenständiges Plugin wohl die schönere Lösung. Wer gern mehr erfahren würde: Details zu den Plugins gibt es in den Tiefen der Unreal Doku.

An dieser Stelle sollten wir dann vielleicht auch anmerken, dass wir keinen Code in jeglicher Form von PTC ausliefern. Das Vuforia SDK wird von PTC vertrieben und wird in unserem Plugin lediglich als externe Abhängigkeit verwendet. Daher ist für die Verwendung lediglich das Kopieren des Vuforia SDK in unseren Plugin Ordner und das Konfigurieren des Lizenzschlüssels nötig. Alles Weitere kann dann angenehm über das User Interface von Unreal erfolgen.

Um die Usability weiter zu erhöhen, haben wir auch damit angefangen, AR Events bis in das Unreal User Interface weiterzureichen. Ich meine, wie cool ist es denn seine gesamte AR
Anwendung in einer Grafik Engine zusammen zu klicken und zwar nicht nur in irgendeiner, sondern in der aktuell wohl besten.

Als Beispiel ist oben ein kleiner Level Blueprint mit den OnTrackingLost/Found Events vom Vuforia SDK. In diesem Beispiel wird lediglich der AR Content versteckt und angezeigt. Je nachdem, ob das Tracking Target sichtbar ist oder nicht. Theoretisch kann das Event aber alles mögliche auslösen. Wie wäre es denn, einen Drachen durch das Bild fliegen zu lassen?

Unter der Haube

Neben den ganzen sichtbaren Erweiterungen haben wir im letzten Monat aber auch eine kleine (oder eigentlich eine große) Erweiterung unter der Haube vorgenommen. Anstatt die Textur des Kamerastreams zu kopieren, um sie in Unreal darzustellen, verwenden wir Texturpointer. Somit sparen wir uns nicht nur Speicher und die Zeit des Kopiervorganges, sondern auch den Umweg vom Grafikspeicher zum Hauptspeicher und zurück. Okay, auf den meisten Mobilgeräten ist das am Ende dann wohl doch wieder derselbe Speicher, trotzdem beeindrucken die Zahlen und der Kopiervorgang wird allemal gespart.

Ursprünglich waren wir bei stockenden 20 FPS auf einem Nexus 5, nun erreichen wir bis zu 60 FPS auf modernen Geräten, wie z.B. dem Galaxy S5, S6, S7 oder dem Pixel C. Um dem direkten Vergleich genüge zu tun, haben wir das Plugin natürlich auch auf einem Nexus 5 getestet und konnten einen Performanceanstieg von 30 FPS auf 60 FPS messen.

Als letztes technisches Detail, bevor es um die Zukunft von Vuforia4Unreal geht, haben wir noch auf die aktuelle Version der Unreal Engine (Version 4.16.2) aktualisiert, was hauptsächlich Verbesserungen am Buildprozess mit sich bringt.

Und nun? Hilf uns die Zukunft zu gestalten!

Die Idee unser Vuforia4Unreal (jetzt aber wirklich) Plugin Open Source zur Verfügung zu stellen gibt es eigentlich schon seit wir damit angefangen haben. Einerseits gab es gewisse Prozesse, die diese Entwicklung verlangsamt haben (darauf wollen wir hier aber mal nicht näher eingehen ;)) Und andererseits hat uns bisher auch die Zeit gefehlt, es soweit voranzutreiben, dass wir mit ruhigem Gewissen einen ersten Commit auf Github hätten verantworten können.

Juhu, nun ist es aber soweit, nur wo soll die Reise jetzt hin gehen? Zunächst geht es einmal um die Stabilität der bestehenden Features. Bis jetzt hatten wir nur bei wenigen Geräten die Möglichkeit, unser Plugin zu testen, wir wollen natürlich, dass Vuforia4Unreal auf allen möglichen Geräten die besten Ergebnisse und die bestmögliche Performance liefert. Deshalb brauchen wir sowohl Leute, die das Plugin auch auf ihrem Gerät ausprobieren, als auch Leute mit Erfahrung in Unreal, die gerne mit uns an der Effizienz des Plugins arbeiten dürfen und sollen.

Außerdem gibt es auch jede Menge Features, die wir noch gerne entwickeln würden. Die Liste ist scheinbar endlos, da das Vuforia SDK dahingehend so viele Möglichkeiten bietet:

• Multi Target Tracking
• Cloud Recognition
• Object Targets
• Zylindrische Targets
• Smart Terrain
• Instant Tracking
• Extended Tracking

Und für die Techniker unter uns natürlich den Geräte Support. Das reicht von der Unterstützung von OpenGL ES 2.0 und Metal 2 unter iOs, Vulkan unter Android bis zu DirectX 11 für ein mögliches Windows Plugin. Wie wäre es dann noch mit einer Live Vorschau im Unreal Editor zum Debuggen oder mit Target Authoring Funktionalitäten? Richtig utopisch, und ohne wohl durchdachte Strukturen, Unreal UI Integration und viel, nein sehr viel Testen wird das schwer – aber keinesfalls unmöglich!

Wir sind motiviert und wollen unser Vuforia4Unreal Plugin weiterentwickeln, vielleicht ist auch noch Platz, AR mit Vuforia über eine zweite (vielleicht ja bessere?) Game Engine zu entwickeln. Also bleibt nichts mehr zu sagen als der Link zum GitHub Repo. Viel Spaß damit!

Lust auf mehr neues? Melde dich jetzt für unseren monatlichen Newsletter an!