Welche Methoden / Technologien zur Reduzierung der erforderlichen Leistung für die virtuelle Realität gibt es?

7

Ich interessiere mich für virtuelle Realität, aber einigen Quellen zufolge verfügen weniger als 1% der heute verwendeten Computer über die erforderliche Leistung, um moderne VR-Spiele auszuführen. Da viele von ihnen nicht für Spiele gedacht sind, ist dies immer noch ein großes Hindernis für die weit verbreitete Einführung von VR-Headsets auf dem Markt. Ich habe mich gefragt, was getan werden kann, um die Leistungsanforderungen eines VR-Spiels zu reduzieren, das unter Berücksichtigung solcher Optimierungen nicht implementiert wurde.

Ich spreche von Technologien wie dem foveated Rendering, bei dem (ab) die Tatsache ausgenutzt wird, dass wir im Zentrum unseres Sichtfelds immer nur wenige Grad als scharf wahrnehmen, während alles andere verschwommen ist. Dies kann mit Eye Tracking kombiniert werden, sodass nur die Bereiche, in die der Player schaut, in voller Qualität gerendert werden, während wir die Renderqualität und damit die Leistungsanforderungen überall sonst reduzieren können. Dies scheint ein großer Vorteil zu sein, und ich frage mich ehrlich, warum keines der großen VR-Unternehmen Eye-Tracking in seine Headsets implementiert und das Rendern in seine SDKs in ihre Headsets integriert hat. Die Technologie existiert und ich kann mir nicht vorstellen, dass sie den Preis erheblich erhöhen würde. Papier über foveated Rendering

Es gibt auch ein instanziiertes Stereo-Rendering, bei dem beide Augen gleichzeitig gerendert werden, anstatt sie für jedes Auge einzeln zu rendern. Beispiel-GIF für Instanced Stero Rendering - Epische Spiele, Unreal Engine 4.11 - Versionshinweise

Es ist auch möglich, nur einen Kegelstumpf für beide Augen anstelle von zwei zu verwenden, wie hier beschrieben. VR und Kegelstumpf Keulen

Aber gibt es andere Ansätze für das performane Problem?

Syzygy
quelle
Zeitliche Algorithmen sollten helfen, indem sie Informationen von Bild zu Bild wiederverwenden und so die Renderkosten im Laufe der Zeit amortisieren.
Alan Wolfe
Die Frage lautet "Laut einigen Quellen sind weniger als 1% der Computer in Gebrauch ...". Könnten Sie genauer sagen, an welche Quellen Sie denken?
Andreas
1
@Andreas goo.gl/YqMpwQ goo.gl/2oQBPw Ich glaubte nicht, dass diese Aussage für die Frage relevant genug war, um eine Quelle zu benötigen. Insbesondere in Anbetracht dessen (obwohl die tatsächlichen Zahlen umstritten sind), ist es offensichtlich und bekannt, dass VR leistungsintensiv ist und daher nicht auf langsameren PCs ausgeführt werden kann.
Syzygy
Ich war mir nicht sicher, ob "einige" Leute waren, die Sie beim Reddit-Wandern getroffen haben, oder, wie die Links zeigen, ziemlich seriöse Unternehmen und Nachrichtennetzwerke. Offensichtlich ist das eine Frage von heute und morgen. Heute ist 1%. 2020 wird auf 8% geschätzt. Letzteres kann durchaus alle abdecken, die zu diesem Zeitpunkt noch an VR interessiert sind, sodass dies möglicherweise ein Problem darstellt oder nicht.
Andreas

Antworten:

9

Vermeiden Sie Stereo, wenn möglich

Kürzlich wurde eine Studie veröffentlicht, in der gemessen wurde, wann Benutzer feststellen können oder nicht, ob der vom Standpunkt abhängige Spiegelbeitrag zwischen den Augen unterschiedlich ist.

Wahrnehmung von Highlight-Disparität in einiger Entfernung in Head-Mounted-Displays von Verbrauchern

In Zukunft könnte dies verwendet werden, um einige Berechnungen zwischen den beiden Augenrender zu teilen. Leider klingt dies in einer typischen Rasterisierungspipeline schwer zu nutzen.

Einige Spiele vermeiden Stereo bereits beim Rendern von Objekten und Hintergrund.


Reduzieren Sie die Schattierung, wenn möglich

Linsenverzerrung

Teil des NVidia VRWorks SDK ist die Multi-Res-Schattierung , mit der die Schattierung reduziert werden kann, um der Tatsache Rechnung zu tragen, dass einige Pixel aufgrund von Linsenverzerrungen weniger zum endgültigen Bild beitragen.

In der Präsentation der GDC 2015 von Alex Vlachos erwähnt er auch die Idee, das Bild in zwei Teilen unterschiedlicher Auflösung zu rendern, um dasselbe Ziel zu erreichen.

Foveated Rendering

Wie in Ihrer Frage erwähnt, zielt das foveated Rendering darauf ab, die Auflösung zu skalieren, um der Tatsache Rechnung zu tragen, dass Augen in der Fovea präziser und in der Peripherie weniger präzise sind. Es gibt einige Untersuchungen zu diesem Thema , aber dies erfordert Eye-Tracking wie im Fove HMD.

Julien Guertault
quelle
7

Alex Vlachos von Valve hat zwei großartige GDC-Gespräche darüber geführt:

Abgesehen davon (und was Sie selbst verlinkt haben) bleibt nichts anderes zu tun, als Ihre App einfach zu optimieren, bis Sie höchstens 10 ms pro Frame (100 Hz, Ziel 90 Hz-Anzeige + Rand) verbringen. Es gelten Standard-Rendering-Optimierungen. Wenden Sie eine Technik und ein Profil an, bestimmen Sie die Auswirkungen auf die Leistung, spülen Sie sie aus und wiederholen Sie sie.

Sie können auch mit dieser UE4-Stereoinstanz von Epic Vorsicht walten lassen. Nach meiner Erfahrung hängt die Leistungssteigerung stark von der Rendering-Workload des Spiels ab. Ich hatte ein statisch beleuchtetes Spiel mit viel instanziiertem Laub und diese Funktion war tatsächlich ein Nettoverlust, wahrscheinlich aufgrund des Overheads der dynamischen Verzweigung des linken / rechten Auges in den Shadern. während eine voll dynamisch beleuchtete Szene davon profitieren kann. Wie ich bereits sagte: Profil, um sicherzustellen, dass eine Technik tatsächlich die Leistung verbessert.

IneQuation
quelle