Was Sie über den Oculus Rift Support in Blender wissen müssen.

Mit der Blender Game Engine können Nutzer jetzt mit Oculus Rift auf eine freie Software-Alternative zu Unity für Virtual-Reality(VR)-Demos zurückgreifen. Bestehende BGE-Demos konnten einfach portiert werden. Mit BGE können Sie ganz einfach Assets erstellen und in ihre Demo importieren.

Oculus Rift Support Blender

Status von Oculus Rift in freier Software.

Seit seiner Veröffentlichung im März hat der Oculus Rift eine recht gute Akzeptanz in proprietären Game Engines gefunden. Source, UDK 3 und vor allem Unity haben die neue VR-Technologie frühzeitig angenommen. Leider wurde der Community nur Unity und C/C++ als Werkzeuge zur Verfügung gestellt, so dass die meisten aktuellen Demos mit Unity durchgeführt werden. Freie Software wie Blender war aufgrund der proprietären Lizenzierung des Oculus SDK eher skeptisch gegenüber der Implementierung. Die SDK-Lizenz zeigt, dass Open Source nicht gleich freie Software ist.

Nur wenige Oculus Demos waren für GNU/Linux verfügbar, da es keine Veröffentlichung des offiziellen SDKs gab. Aus diesem Grund beinhalten proprietäre Demos wie Team Fortress 2 auch keine Rift-Unterstützung. Auch die Unity-Demos sind nicht für Linux, sondern nur für OS X und Windows konzipiert.

Zum Glück befinden wir uns im Github-Zeitalter, wo Sie Internet Software für jeden Bedarf finden. Das offizielle Oculus SDK wurde von nsb auf C und Linux portiert, muss aber seine Lizenz behalten. Ein weiteres interessantes Projekt ist libvr by thib, das eine BSD-2-Klausel-Lizenz hat. Beide Bibliotheken funktionieren problemlos unter GNU/Linux, aber die erste ist kein Kandidat der Wahl für Blender, da ihr eine freie Softwarelizenz fehlt. Die dritte verfügbare Bibliothek ist OpenHMD, dies ist Boost-lizenziert. Dafür wurde ein minimalistischer Python-Wrapper entwickelt, so dass jetzt der Rift-Sensor in BGE verfügbar ist. Bereits davon wurde dieses Ziel durch einen ähnlichen Ansatz durch einen Balance Board Wrapper für Python / BGE erreicht.

Einschließlich Rift-Input für ihre Blender Game Engine Demo.

Um mein Github-Projekt zu erstellen, müssen Sie OpenHMD installieren. Der Einfachheit halber wurde ein Arch User Repository-Projekt erstellt. Für alle anderen, müssen Sie es in /usr/local installieren oder alternativ schreiben Sie ein Debian-Paket etc. Um Python Rift zu erstellen, müssen Sie „./setup.py build“ ausführen. Sie müssen die .so-Datei mit ihrem ~/.blender-Verzeichnis symbolisieren.

Copy to Clipboard

Da es sich jetzt im Python-Pfad ihres Blender`s befindet, können Sie das PyRift-Objekt in BGE wie folgt initialisieren.

Copy to Clipboard

Die Rotation wird als Quaterion erfasst. Beachten Sie, dass OpenHMD XYZW verwendet, aber Blender WXYZ. Sie können ihre Kamera wie folgt transformieren.

Copy to Clipboard

Die Kamera bewegt sich mit einer erstaunlich niedrigen Latenzzeit. Unreal hatte unter Windows nicht diese geringe Latenzzeit.

Rendering für den Oculus Rift in BGE.

Wie wir wissen, unterstützt die BGE verschiedene Arten von stereoskopischem Rendering. Einer von ihnen ist derjenige, der einmal durch den Rift benötigt wird: Side-By-Side. Das Einzige, was wir wissen müssen, ist die Transformation der umgekehrten Linsenverzerrung, die wir mit einem einfachen Fragment-Shader erreichen können.

Verschiedene Versionen dieses Fragment-Shaders erschienen im Netz. Eine gute Erklärung der Methode finden Sie auf der FireBox-Seite. Eine weitere Version ist die in den OpenHMD-Beispielen enthaltene.

Der Fragment-Shader transformierte das Side-by-Side Rendering asymmetrisch, so dass das linke Auge kleiner als das rechte war.

Das Interessante ist, dass die Ausgabe des Shaders asymmetrisch ist, wenn er mit anderen Stereooptionen gerendert wird, einschließlich Above-Below und ohne Stereo. Die Entwickler baten in einem Blender Stackexchange Post und im Blenderartists Forum um Hilfe. Ein Forummitglied hat sich diesen Patch ausgedacht, der das Problem behebt. Damit ist die Rift-Unterstützung komplett.

Vielen Dank für ihren Besuch.