10 VR-Tipps für Unreal Engine

Wenn es um die Spiele- und Filmindustrie geht, scheint die Technologie rasant voranzukommen und Show-Stopps zu schaffen 3D-Filme , echte Spielerlebnisse und 3D Kunst . Aber das aktuelle Thema ist die virtuelle Realität.

Epische Spiele ' Showdown-Demo war vor einigen Jahren ein beliebtes VR-Schaufenster und mit der Veröffentlichung von Unwirkliche Engine 4 Epic hat das gesamte Projekt für jedermann zum Herunterladen, Dekonstruieren und Verwenden bereitgestellt.

In Showdown wird der Betrachter in eine Szene versetzt, in der städtische Soldaten in Zeitlupe gegen einen massiven Roboter mit Raketen kämpfen. Mit einer 360-Grad-Head-Tracking-Unterstützung für die Betrachtung der Szene aus vielen Winkeln und Inhalten, die GPUs der Nvidia Maxwell-Klasse unterstützen, wurde Showdown für die Enthüllung des am Kopf montierten Oculus Rift Crescent Bay-Display-Prototyps beim ersten Oculus Connect entwickelt. Es wurde entwickelt, um die Grenzen moderner VR-Auflösungen und Frameraten zu testen.



Während wir uns darauf konzentrierten, mit Showdown die technologischen Grenzen zu überschreiten, waren wir tatsächlich kreativ eingeschränkt. Wir hatten fünf Wochen Zeit, um die Demo mit einem zweiköpfigen Content-Team zu erstellen und uns Zeit von einigen anderen Leuten zu leihen. Deshalb haben wir den Inhalt von zwei früheren Demos angepasst: Samaritan und Infiltrator. Da die Animation knapp war, haben wir sieben Sekunden des tatsächlichen Inhalts gedehnt, um zwei Minuten Demo-Zeit zu füllen - daher die glückliche Entdeckung, die aus praktischen Einschränkungen hervorgeht: Indem wir die Aktion um Sie herum verlangsamen, können wir die Details der Szene hervorheben.

Im Folgenden sind die zehn wichtigsten Optimierungstechniken aufgeführt, mit denen die Leistung in Showdown maximiert wurde. Jede dieser Techniken kann auf VR-Projekte auf der Basis von Unreal Engine 4 angewendet werden, um die bestmögliche Leistung zu erzielen. Showdown unterstützt DK2 und höher. Wenn Sie also Zugriff auf ein Entwicklungskit haben, laden Sie es vom Epic Games-Launcher herunter und probieren Sie es aus.

01. Machen Sie Ihre Inhalte wie 1999

VR-Tipps für Unreal Engine: Machen Sie Ihre Inhalte wie 1999

Die Framerate spielt in VR eine Rolle, also halten Sie die Dinge so einfach wie möglich

Wenn Sie anfangen, Inhalte für VR-Projekte zu entwickeln, könnten Sie versucht sein, mit Scheitelpunktzahlen, Texturengrößen und Materialien liberal zu sein, um ein möglichst umfassendes Erlebnis zu erzielen. Widerstehen Sie diesem Drang und treten Sie stattdessen einen Schritt zurück. Entwickeln Sie zunächst einen Plan, mit dem Sie die Nutzung und Wiederverwendung jedes Assets im Projekt maximieren können.

Das Zurückbringen von Kunsttechniken der alten Schule wie Texturatlasieren oder die Verwendung statischer Netze zur Simulation teurer Echtzeitreflexionen sind der Schlüssel, um sicherzustellen, dass Ihr VR-Projekt so schnell wie möglich ausgeführt werden kann und dem Benutzer das bestmögliche VR-Erlebnis bietet.

02. Wenn Sie es zeichnen, wird es gerendert

VR-Tipps für Unreal Engine: Wenn Sie es zeichnen, wird es gerendert

Verwenden Sie Stat Scenerendering, um Ihre Draw Calls zu verfolgen

Das Festlegen einer strengen Regel für die Anzahl der Materialien, die ein statisches Netz in Ihrem Projekt verwenden kann, ist eine hervorragende Möglichkeit, die Leistung frühzeitig in Ihrem Projekt in den Griff zu bekommen. Dies liegt daran, dass die Rendering-Engine für jedes Material, auf das ein statisches Netz angewendet wurde, das Objekt erneut rendern muss.

Verwenden Sie den Befehl Stat Scenerendering, um sicherzustellen, dass die Szene nicht zu schwer zum Zeichnen wird, um festzustellen, wie viele Zeichenaufrufe derzeit verwendet werden. Showdown beschränkte sich auf 1.000 Draw Calls pro Frame, aber denken Sie daran, es gibt zwei Draw Calls pro Objekt, da wir in Stereo sind! Das bedeutet, dass wir monoskopisch nur 500 Draw Calls pro Frame haben, mit denen wir arbeiten können.

Es ist auch erwähnenswert, dass dies weniger problematisch sein wird, da instanziierte Stereoanlagen in den Hauptentwicklungszweig von Unreal Engine 4 rollen.

03. Aktivieren Sie die Shader-Komplexität

VR-Tipps für Unreal Engine: Viel Shader, solche Komplexität

Der Shader-Komplexitätsmodus erkennt Rendering-Engpässe schnell

Bei der Bestimmung, welche Materialien mehr Rendering kosten als andere, kann die Lösung zeitaufwändig und schwer zu verfolgen sein. Glücklicherweise bietet UE4 einen speziellen Ansichtsmodus namens Shader Complexity, mit dem ermittelt werden kann, welche Materialien mehr kosten als andere. Wenn Sie die Shader-Komplexität mit der Tastenkombination [Alt] + [8] aktivieren, wird Ihre Szene durch verschiedene Grün-, Rot- und Weißtöne dargestellt.

Diese verschiedenen Farbtöne geben an, wie teuer das Rendern eines Pixels ist. Hellgrün bedeutet, dass das Pixel billig ist, während Rot bis Weiß Pixel anzeigen, deren Rendern immer mehr kostet. Sie können die Shader-Komplexität auch aktivieren, indem Sie [F5] drücken, wenn die ungekochte Version Ihres Projekts im Editor oder in einem eigenständigen Fenster ausgeführt wird.

04. Tanzen Sie die Performance-Profile

VR-Tipps für Unreal Engine: Performance Profiling Dance machen

Setzen Sie die Profilerstellung fort, um sicherzustellen, dass die Leistung nicht beeinträchtigt wird

Wenn Sie die Leistung Ihres Projekts frühzeitig und häufig profilieren, können Sie sicherstellen, dass Künstler und Designer die Regeln für die Erstellung von Soundinhalten befolgen. Ein GPU-gebundenes Projekt bedeutet, dass Sie versuchen, zu viele Objekte zu rendern, um sie gleichzeitig zu überprüfen, während ein CPU-gebundenes Projekt bedeutet, dass Sie versuchen, zu viele komplexe Berechnungen, wie z. B. physikalische Berechnungen, pro Frame durchzuführen.

Um festzustellen, ob Ihr Projekt CPU- oder GPU-gebunden ist, verwenden Sie den Befehl Stat Unit und beobachten Sie die angezeigten Zahlen. Wenn die Zahlen gelb oder rot sind, bedeutet dies, dass Ihr Projekt an eine GPU oder CPU gebunden ist oder bereits ist. Wenn die Zahlen grün sind, können Sie loslegen. Es ist üblicher, GPU-gebunden als CPU-gebunden zu sein.

Wenn Sie feststellen, dass Sie an eine GPU gebunden sind, können Sie mithilfe des nativen Profilers von UE4 einen tieferen Drilldown durchführen, um die Ursache des Problems zu ermitteln. Um den Profiler zu aktivieren, drücken Sie [Strg] + [Umschalt] + [Komma]. Sobald der GPU-Profiler geöffnet ist, können Sie überprüfen, welche Elemente in Ihrer Szene für das Rendern der GPU am meisten kosten, und diese Objekte dann entfernen oder optimieren. Stellen Sie sicher, dass Ihre Beleuchtung aufgebaut ist, bevor Sie den Leistungsprofiler ausführen, um Fehlalarme zu vermeiden.

05. Fake es bis du es schaffst

VR-Tipps für Unreal Engine: Fake es, bis du es schaffst

Verwenden Sie keinen anspruchsvollen Rendering-Trick, wenn Sie ihn kostenlos fälschen können

Das Finden cleverer Möglichkeiten zum Wiederherstellen teurer Rendering-Optionen wie dynamischer Schatten und Beleuchtung kann ein großer Gewinn sein, um Ihre Leistungsziele in VR zu erreichen. In Showdown haben wir festgestellt, dass die Verwendung von Zeichen, die dynamische Schatten werfen, für jeden Frame zu teuer ist. Deshalb haben wir ihn geschnitten.

Während dies anfänglich dazu führte, dass Charaktere aussahen, als würden sie während der Bewegung schweben, haben wir dies behoben, indem wir gefälschte Blob-Schatten eingeführt haben, die ihre Position und Intensität dynamisch anpassen konnten, je nachdem, wie nahe der Charakter an einem Objekt war. Dies gab die Illusion von Charakteren, die Schatten werfen, wenn sie sich dem Boden oder anderen Objekten nähern.

06. Lichtkarten zur Rettung!

VR-Tipps für Unreal Engine: Lightmaps zur Rettung!

Gehen Sie mit Lightmaps auf die alte Schule

Die Idee, komplexe Beleuchtungsberechnungen in Texturen zu speichern oder zu backen, ist in der Welt der Computergrafik nichts Neues. Diese Beleuchtungsmethode - Lightmapping genannt - berechnet, wie komplex die Beleuchtung aussehen soll, indem diese Ergebnisse in einer Textur gespeichert werden und diese Textur dann verwendet wird, um die Ergebnisse auf Oberflächen in einer 3D-Welt abzubilden.

Showdown hat Lightmapping aus zwei Gründen stark genutzt: Erstens verleiht Lightmapping der Beleuchtung eines Levels eine interessante und dynamische Ästhetik, und zweitens - und was noch wichtiger ist - ist Lightmapping zur Laufzeit äußerst kostengünstig und spart Ressourcen für andere renderintensive Aufgaben.

07. Verwenden Sie Reflection-Capture-Akteure

VR-Tipps für Unreal Engine: Was haben sie mit den Reflexionssonden gemacht?

Reflection Capture-Akteure bieten großartige Reflexionen zu einem Bruchteil der Renderkosten

Reflexionen spielen eine Schlüsselrolle bei der Realisierung von 3D-Renderings. In Showdown wurden Reflexionen häufig verwendet, um der Welt ein komplexeres Aussehen zu verleihen und sie geerdeter wirken zu lassen. Die Demo nutzt jedoch eine interessante Methode zum Erfassen und Anzeigen dieser Reflexionen, die sowohl billig als auch einfach zu verwalten ist: Akteure der Reflexionserfassung sind im gesamten Level platziert.

Diese Akteure zeichnen Teile des Levels in statischen Cubemaps auf, die dann von Materialien zur Verwendung in ihren reflektierenden Teilen abgetastet werden können. Alle Reflexionen, die Sie in Showdown sehen, stammen von nur sechs Akteuren der Reflexionssonde, die innerhalb des Levels platziert wurden.

08. Verlassen Sie sich nicht auf VFX-Tricks

VR-Tipps für Unreal Engine: Die Leistung des VFX

Nicht alle alten VFX-Tricks lassen sich gut auf eine VR-Umgebung übertragen

Visuelle Effekte spielen eine große Rolle dabei, dem Benutzer zu helfen, vollständig in VR einzutauchen. Bestimmte Tricks der alten Schule, mit denen VFX in Echtzeit billiger gerendert werden kann, halten in VR jedoch nicht gut. Wenn Sie beispielsweise Flipbook-Texturen für Rauch verwenden, sieht der Rauch in VR wie ein flaches Blatt aus, wodurch die Glaubwürdigkeit des Effekts zerstört wird.

Um dies zu umgehen, verwendet Showdown hauptsächlich einfache statische Netze für VFX anstelle von Techniken wie Flipbook-Texturen. Ein zusätzlicher Vorteil der Verwendung statischer Netze auf diese Weise besteht darin, dass die Tür für die Bereitstellung von Nahfeldeffekten sehr nahe an der Kamera geöffnet wird, wodurch der Benutzer weiter in die Erfahrung einbezogen wird.

09. Passen Sie den Bildschirmprozentsatz an

VR-Tipps für Unreal Engine: Der Trick zur Bildschirmauflösung

Holen Sie sich das richtige Gleichgewicht zwischen Framerate und visueller Qualität

Durch Anpassen des Bildschirmprozentsatzes Ihres VR-Projekts kann es aus Gründen der visuellen Wiedergabetreue schneller ausgeführt werden. Dies liegt daran, dass der Bildschirmprozentsatz die Größe des endgültigen Renderziels steuert, das auf dem HMD angezeigt wird. Der Bildschirmprozentsatz Ihres Projekts kann auf 30 Prozent der normalen Größe oder auf 300 Prozent der normalen Größe verkleinert werden.

Verwenden Sie den Unreal-Konsolenbefehl HMD SP [Nummer einfügen], um zu testen, wie unterschiedliche Bildschirmprozentsätze im Spiel aussehen. Sobald Sie eine Einstellung gefunden haben, die für Ihr Projekt funktioniert, können Sie sie in die DefaultEngine.INI einfügen, indem Sie r.ScreenPercentage = [Nummer einfügen] hinzufügen. Fangen Sie klein an und gehen Sie vorsichtig nach oben, während Sie mit dieser Funktion experimentieren.

10. Denken Sie an die Transluzenz

VR-Tipps für Unreal Engine: Transluzenz missbrauchen oder nicht missbrauchen

Wenn Sie eine Umgehung anstelle von Transparenz verwenden können, wählen Sie diese

Showdown benötigt aufgrund der hohen Rendering-Kosten pro Frame nur sehr wenig Transluzenz. Als Alternative haben wir uns für eine Methode entschieden, die die Eigenschaften des zeitlichen Anti-Aliasing ohne die damit verbundenen Kosten ausnutzt. Um diese Funktionalität zu erreichen und ein Objekt durchscheinend erscheinen zu lassen, können Sie die Opazitätsmaskierung in den Materialien Ihres Projekts neben der Materialfunktion Dither Temporal AA verwenden.

Es ist zwar nicht immer ein Ersatz für die Transluzenz, kann jedoch ein würdiger Ersatz für Szenen sein, die eine durchscheinende Fading-Näherung benötigen. Um diese Funktion zu verwenden, stellen Sie sicher, dass Sie das, was Sie für die Transluzenz verwenden, in die Dither Temporal AA-Materialfunktion eingeben, bevor Sie in die Opazitätsmaterialeingabe gehen.

Weiterlesen: