Rendering und Optimierung in der VR Entwicklung

Um Virtual Reality möglich zu machen ist ein komplexes Zusammenspiel von Hard- und Software notwendig. Dabei spielt jede einzelne Komponente eine wichtige Rolle.

Heute wollen wir uns die Software genauer ansehen und was auf den verschiedenen Ebenen passiert. Denn wenn du diese Grundlagen verstehst, hast du das notwendige Wissen um die Methoden zur Optimierung richtig anwenden zu können.

Konkret wollen dein fundamentales Wissen über das Rendering und Optimierungen bei VR Applikationen erweitern. Damit ausgerüstet wird es dir leichter fallen hochqualitative VR Projekte zu entwickeln. Wie auch die Kamera ist das Rendering essentiell für VR Erlebnisse die VR Sickness umgehen.


Konstante 90 Bilder pro Sekunde

Grundsätzlich ist es wichtig, das wir zuverlässig die geforderten 90 Bilder pro Sekunde, kurz FPS, rendern. Das wäre bisher bei klassischen Spielen schon eine Herausforderung, jedoch ist es bei der VR Entwicklung nochmal eine Stufe schwieriger.

Denn der Kameraausschnitt wird zwei mal gerendert, jeweils für ein Auge aus einer leicht anderen Perspektive. Um diesen Prozess zu beschleunigen werden in die 3D Engines schon eifrig Optimierungen für das doppelte Rendern integriert, doch wiegen diese noch lange nicht die zusätzliche Belastung auf.

You really, really have to watch framerate.
You don’t wanna make yourself sick.
— Dylan Fitterer, Entwickler von Audioshield

Möglicherweise hast du schon vom Begriff „motion to photon latency“ gehört. Im Grunde beschreibt er vergangene Zeit zwischen einer Bewegungsänderung und der Aktualisierung des Bilds in der VR Brille. Im Idealfall sollte dieser Zeitabstand unter 30 Millisekunden liegen.

Doch wenn wir eine der bekannten Engines nutzen, müssen wir uns in der Regel nicht mit diesem Detail beschäftigen. Die SDKs und Engines übernehmen die komplexe Arbeit um unsere 3D Szene passend für das jeweilige VR Headset, die Linsenposition und -krümmung zu rendern.

Zudem profitieren wir automatisch von neuen Rendering-Verbesserungen in den Engines. So haben beispielsweise die Unity Entwickler*innen vor kurzem eine große Optimierung vorgestellt, bei ein Teil der Last von der CPU auf die GPU – also die Grafikkarte – verschoben wird und so zusätzliche Leistung entsteht.

Die komplexen Details, die auf dieser tiefen Ebene des Renderings passieren, würden jedoch den Rahmen dieses Artikels sprengen. Falls du dich aber gerne näher damit beschäftigen möchtest, kann ich dir sehr den Vortrag von Alex Vlachos zum Thema „Advanced VR Rendering“ empfehlen!

Also, go for quantity.
Try a lot of different things, new concepts.
— Dylan Fitterer, Entwickler von Audioshield

Solange wir die Bildrate prüfen und konstant hoch halten, sind wir auf der sicheren Seite. Um das zu erreichen, müssen wir ein paar Punkte bei der Entwicklung beachten.

Hilfreiche Werkzeuge

Bei der Entwicklung sollten wir uns nicht auf unser Gefühl verlassen, denn es gibt sehr hilfreiche Werkzeuge um die Performance unserer VR App zu prüfen.

Ganz nah an der Grafikkarte und sehr beliebt bei Engine-Enwickler*innen ist das Tool Nsight von NVIDIA. Doch praktischerweise bieten uns sowohl Unity als auch die Unreal Engine Werkzeuge um die Performance genau zu analysieren.

Der Unity 3D Profiler bringt dir wichtige Einblicke in die Performance deiner VR App

Außerdem ist es ideal, wenn du für die Tests deiner Virtual Reality Projekte einen Computer verwendest, der den Mindestanforderungen des jeweiligen Headsets entspricht. Dadurch kannst du sicher gehen, dass du deine VR Applikation genau so erlebst, wie es später die Nutzer*innen auch werden.

Fokus auf Animation, Ton und Interaktion

Es gibt auf der technischen Seite einige Bereiche in denen wir optimieren können. Doch hängt deren genaue Implementierung vom jeweiligen Kontext ab.

Wir können uns aber grundsätzlich von den Methoden für die Optimierung von mobilen Spielen inspirieren lassen. Denn diese stehen vor einer ähnlichen Herausforderung bei der hohe Auflösungen — z.B. bei einem iPad Retina — mit begrenzter Leistung gerendert werden müssen.

Darüberhinaus gibt es aber noch ein großes Potential für Optimierungen in den Inhalten und dem Fokus deiner VR App. Denn unsere virtuellen Welten müssen visuell nicht mit klassischen Spielen und dem etablierten Detailgrad mithalten.

In VR tritt das Visuelle eher in den Hintergrund und andere Elemente werden wichtiger. Daher können wir problemlos 3D Modelle und Effekte einfach halten und damit einiges an Last einsparen.

Die drei weiteren großen Säulen für VR Projekte sind: Animation, Ton und Interaktion. Daher solltest du dir auch für diese Bereiche Zeit und Muse nehmen.

Besser machst du größere Einschnitte in der Grafikqualität und investierst die zusätzliche Zeit und Performance in lebendige Animationen, passende Toneffekte, die sich in die Situation einfügen und sie noch intensiver machen, und tolle Interaktionen, die Spaß machen und intuitiv sind.

Ein schönes Beispiel für diese Art der VR Entwicklung ist das Spiel Job Simulator:

Dass visuelle Höchstleistungen in VR Projekten nicht notwendig sind und die Kombination aus lebendiger Animation und einfacher Grafik absolut glaubwürdig ist, kannst du in diesem Video sehr gut sehen:


Unterstützung für dich

Wie unglaublich wichtig der richtige Einsatz von Toneffekten in VR Projekten ist und warum bei der Simulation von 3D Sound auch heute noch getrickst wird, sehen wir uns dann im nächsten Artikel an.

Wenn du bei deiner VR App an die Grenzen der Performance stößt und Unterstützung bei der Optimierung suchst, kannst du dich gerne bei mir melden.

Wie erwähnt sind die Optimierungs-Methoden je nach Kontext und Projekt unterschiedlich sinnvoll und passend. Und oft ist es gar nicht so leicht herauszufinden welche Komponente im Projekt für die schlechte Performance verantwortlich ist.


Hast du dich schon beim kostenlosen Newsletter angemeldet? Damit bekommst du pünktlich jeden Dienstag eine kurzen Mail zum neuen Artikel, Video oder Tutorial direkt in dein Postfach.