Wie viel zusätzliche Energie wird für ein stereoskopisches 3D-Spiel benötigt?

12

Wenn wir Cryengine 3 für die Spieleentwicklung verwenden und das Spiel 3D-kompatibel machen. Bedeutet dies, dass Sie einen Computer mit der doppelten "Leistung" benötigen, da 3D zwei Bilder sendet? Wenn Sie also bei normaler Wiedergabe 30 fps erhalten, benötigen Sie 60 fps für das Spielen mit 3D?

Tourrent
quelle

Antworten:

1

Kurz gesagt: Ja, Sie müssen 60 fps ausgeben, um den Effekt von 30 fps zu erzielen.

SD021
quelle
1
Ich bin verwirrt darüber, dass diese Antwort die "akzeptierte" Antwort ist, da die beiden Antworten auch hier scheinbar widersprüchlich sind.
jcurrie33
2
Ich weiß nicht, warum dies die akzeptierte Antwort ist, da es sachlich falsch ist.
AttackingHobo
16

Sie verlieren nicht die Hälfte Ihrer Leistung, wenn Sie Stereo-3D einschalten. Die Spielelogik, die KI, die Physik und alles, was die CPU tut, wird immer noch nur einmal ausgeführt. Nur das Rendern wird zweimal ausgeführt, und das ist effizient, da die Karte alles im Speicher hat, was für jeden zweiten Frame vorgesehen ist, sodass keine zusätzliche Bandbreite benötigt wird.

Die einzige Situation, in der dies zutrifft, ist, wenn Sie eine statische 3D-Szene hatten, die wirklich kompliziert war, wenn die GPU alles erledigte und die CPU im Leerlauf saß. Und selbst dann bezweifle ich, dass die Leistung um 50% sinken wird

Ich habe viele Spiele mit nvidia 3d stereo getestet und kein Spiel ist jemals um die 50% gesunken.

AttackingHobo
quelle
9

Insbesondere bei CryEngine 3 ist dies nicht der Fall. Ja, es halbiert die Framerate, aber das Einschalten von 3D kostet Sie nicht die Hälfte Ihrer Frames (oder Sie benötigen doppelte Hardware-Leistung). Sie verwenden einen Neuprojektions-Cache und den verfügbaren Tiefenpuffer, um das zweite Bild zu erhalten, sodass der Leistungsabfall beim Einschalten von 3D 5-10% beträgt. Sie nennen dies "Screen Space Re-Projection Stereo".

Enrico
quelle
1
Ja, aber es ist nicht voll stereo.
Samboush
Sie erwähnen dies irgendwo in einem Kommentar eines Spieleentwicklers und können den Link im Moment nicht finden.
David Young
@samboush: Warum ist das nicht "full stereo"? Es funktioniert mit Nvidia 3D Vision und üblichen Stereobrillen.
Enrico
@Enrico: Wenn Sie einen Bildschirm mit Tiefe haben, kennen Sie die tatsächlichen Koordinaten jedes Pixels. Dann kann U die Verschiebung der normalen Szene für das linke und rechte Auge zählen. Aber echtes 3D-Stereo ist, dass Sie zwei Szenen zeichnen - die erste für das linke Auge und die zweite für das rechte Auge. Zwei volle Szenen. Dann dauert das Zeichnen noch zweimal länger.
Samboush
Warum möchten Sie jedes Bild mit einem kleinen Versatz für das Stereo-Rendering komplett neu zeichnen, wenn Sie bereits über diese Informationen verfügen? Die meisten der berechneten Pixel sind im Neuprojektions-Cache korrekt und müssen nicht neu berechnet werden. Diejenigen, die sich ändern, werden natürlich neu berechnet - et voila, Sie haben vollständige Stereoanlage.
Enrico
1

Ich würde sagen, überhaupt nicht zu vernachlässigen. Dies ist sowohl ein Hardware-Ressourcenproblem als auch eine Herausforderung für die Entwicklung.

Meistens können Sie die Framerate nicht zwischen den beiden Augen aufteilen. Wenn Ihr Spiel normalerweise mit 60 fps läuft, müssen Sie für den gleichen visuellen Komfort mit 120 fps laufen .

Viele Dinge können jedoch nur einmal pro Stereopaar erledigt werden: Kegelstumpfentfernung - auf Kosten eines etwas größeren Kegels (siehe Einrichten der 3D-Kameras in Optimization für stereoskopische 3D-Spiele auf PlayStation® ), Okklusionsentfernung, Vertex und Index-Array-Uploads, Szenen-Captures und Renderings zur Texturierung ...

Teile der Szene können nur einmal gerendert werden: Beispielsweise befindet sich ein komplexer Himmel mit Wolken, Sternen usw. normalerweise im Unendlichen, sodass die Pixel-Shader-Kosten nur einmal benötigt werden und das zweite Rendern ein bloßes Nachschlagen der Textur sein kann Das erste Rendering-Ziel. Tatsächlich verwenden einige Stereospiele eine Methode namens Reprojektion, die auf diesem Ansatz aufbaut, um sie für die gesamte Szene nutzbar zu machen. Hinweise zu dieser Technik finden Sie in diesem Thread unter beyond3d .

Um die erforderliche zusätzliche Rechenleistung zu bewältigen, können Sie die Auflösung verringern. Nach meiner persönlichen Erfahrung ist es weitaus akzeptabler, dies zu tun, als die Framerate zu verringern. Versuchen Sie jedoch nicht, das Anti-Aliasing zu deaktivieren: Wie die Ingenieure von Sony in der obigen Abhandlung sagen, sieht das Rendern in Puffern mit niedrigerer Auflösung mit AA besser aus als in Puffern mit hoher Auflösung ohne AA .

Beachten Sie, dass es andere Ansätze für die Stereovision in Spielen gibt, die keinen 3D-Fernseher benötigen, wie z. B. Trioviz . Ich kann hier jedoch nicht auf die Details eingehen (NDA-Probleme).

sam hocevar
quelle