Ich erinnere mich, dass ich mir den vorgerenderten Trailer von Tomb Raider angesehen und mir gewünscht habe, diese Grafiken könnten im Spiel selbst enthalten sein.
Warum gibt es einen so großen Unterschied zwischen dem Trailer und dem eigentlichen Spiel? Ich verstehe, dass das Spiel ein völlig anderes Konzept ist, es hat eine andere Pipeline, es muss verschiedene Arten von Spielerinteraktionen durchlaufen usw. Ich möchte wissen, was Spiele im Vergleich zu Animationsfilmen so schwierig macht.
Bisher weiß ich, dass das Erstellen eines Spiels und eines Animationsfilms eine gewisse Grundlast mit sich bringt, z. B. das Erstellen von 3D-Modellen und das Rendern (nur im Spiel geschieht dies live). Animationsfilme werden lange gerendert und es werden nur vorgerenderte Szenen angezeigt. Das ist alles, was ich weiß, also hoffe ich, dass Sie aus dieser Perspektive antworten!
Was ist mit Animationsfilmen, die stundenlang gerendert werden, die so schön sind, während Live-Rendering im Spiel weniger schön ist (aus allgemeiner Sicht)?
Antworten:
Sie haben bereits einen der zentralen Punkte erwähnt: Zeit .
Beim Rendern einer High-Fidelity-Animation werden mehrere unterschiedliche Ansätze und Algorithmen verwendet (alle üblicherweise unter dem Begriff "Global Illumination" zusammengefasst ), wobei Ray-Tracing eine der häufigsten ist (andere umfassen beispielsweise Radiosity und Ambient Occlusion) ).
Ray-Tracing beinhaltet die Simulation einer (normalerweise hohen) Anzahl von Lichtstrahlen, die durch die Szene gehen, und die Berechnung ihrer Pfade, Reflexionen und Brechungen, wenn sie auf Objekte mit unterschiedlichen Materialien treffen. Unterschiedliche Materialien haben dann unterschiedliche physikalische Eigenschaften, die zu spezifischen Reaktionen der Strahlen führen (die Lichtmenge, die beispielsweise von einem Objekt reflektiert wird, ist bei glänzenden Objekten höher als bei glänzenden Objekten).
Ein weiterer Punkt ist die Physik : Die physikalisch korrekte Simulation von Tausenden von Haarsträhnen ist zeitaufwändig. Aus diesem Grund werden bei älteren Spielen die Haare häufig mit einem sehr rauen Netz angenähert, das dann texturiert wird, um den Eindruck von Haaren zu erwecken, möglicherweise mit einigen zusätzlichen beweglichen Objekten, um das Aussehen etwas realistischer zu gestalten.
Auch zu beachten: Speicher & Bandbreite . Je höher die Qualität einer Textur sein sollte, die auf ein Objekt in einer Szene angewendet wird, desto mehr Speicher muss geladen und in einem Spiel verwendet werden. Das System muss jedoch nicht nur über genügend Speicher verfügen, um die Daten zu speichern, sondern diese Daten müssen auch übertragen werden, wodurch die verfügbare Bandbreite aufgebraucht wird. Da Speicher und Bandbreite begrenzt sind, gibt es ein Maximum, was erreicht werden kann.
Spiele schummeln oft ein wenig, indem sie nur die hochauflösenden Texturen für nahe Objekte verwenden, und verwenden Bilder mit niedrigerer Auflösung für weit entfernte Objekte (Begriff: MipMapping ), wodurch die erforderliche Bandbreite verringert wird, da weniger Texel abgerufen werden müssen, was wiederum die Leistung erhöht (Siehe Abschnitt über MipMapping im OpenGLES-Programmierhandbuch von Apple).
In ähnlicher Weise verwenden Spiele auch oft unterschiedliche Maschen für Objekte, je nachdem, wie weit sie entfernt sind, wobei weit entfernte Objekte weniger detailliert sind (Begriff: LoD = Level of Detail ).
Fazit: In Echtzeitgrafiken (wie Spielen und Simulationen) funktioniert dieser detaillierte und komplexe Renderprozess natürlich nicht, um flüssige / flüssige Szenen zu erzeugen. Sie benötigen mindestens 20 gerenderte Bilder pro Sekunde, um diesen fließenden Animations- / Bewegungseffekt für das menschliche Auge zu erzielen. Andererseits kann das Rendern eines einzelnen Frames (!) In einem Animationsfilm leicht einige Stunden bis mehrere Tage in Anspruch nehmen, abhängig von vielen Faktoren wie der Anzahl der beim Ray-Tracing verwendeten Strahlen oder der Anzahl der Samples für Ambient Okklusion (siehe diese Pixar Seite 1 / Pixar Seite 2 für Screenshots von 16 vs. 256 Samples) sowie die gewünschte Filmauflösung (mehr Pixel = mehr zu berechnende Informationen). Siehe auch diesen Artikelüber den Prozess hinter Pixars Monsters University- Animationsfilm, der einige interessante Einblicke gibt und außerdem 29 Stunden Renderzeit pro Frame erwähnt.
Im Allgemeinen gilt: Je höher die zu erreichende Wiedergabetreue / der zu erreichende Realismus ist, desto mehr Iterationen / Bounces / Samples werden normalerweise benötigt, was wiederum mehr Ressourcen erfordert (sowohl Zeit als auch Rechenleistung / Speicher). Um den Unterschied zu visualisieren, sehen Sie sich das resultierende Rendering basierend auf der Anzahl der Bounces für die Refraktionsberechnung in diesem Beispiel an: Diamond Bounces von Keyshot
Die Qualität von Echtzeitanwendungen nimmt jedoch aus zwei Gründen ständig zu:
Es werden klügere Methoden / Formeln entwickelt und implementiert, die in der Lage sind, eher fotorealistische Effekte ohne Raytracing zu erzielen. Hierbei handelt es sich häufig um Annäherungen und manchmal um vorberechnete Daten. Einige Beispiele:
quelle
Neben dem Zeitfaktor ist es erwähnenswert, dass der Künstler in einem Film die vollständige Kontrolle darüber hat, was der Betrachter betrachtet und was nicht.
In einer typischen Filmszene wird die Kamera nicht viel Zeit damit verbringen, an die Decke oder in eine dunkle Ecke des Raums zu zeigen oder auf den Knöchel einer Person zu zielen, sodass das Budget für Polygone und Texturen für diese Elemente ziemlich niedrig ist.
Wenn sich die gesamte Szene von einem Standpunkt aus abspielt, muss das virtuelle Set (wie ein reales Filmset) nicht die Teile enthalten, die sich hinter der Kamera befinden. In den meisten Spielen kann der Spieler jederzeit und überall nachsehen. Das heißt, das Qualitätsbudget kann sich auf das konzentrieren, was tatsächlich gesehen wird. (Einige Spiele für Dritte, z. B. die God Of War-Serie, verwenden eine eingeschränkte Kamera. Ihre Grafik ist in der Regel deutlich besser als die von Spielen mit kostenlosen Kameras.)
quelle
Sie gehen davon aus, dass der Unterschied einfach im Rendern liegt - in einem Animationsfilm gibt es auch die Möglichkeit, nachträglich zu bearbeiten. Möglicherweise haben sie Effekte, die in der ursprünglichen Engine nur schwer zu erzielen waren, oder sie können die Einstellungen ein wenig verändern (z. B. entfernen oder wiederholen Sie jeden 10. Frame, um die Animation zu beschleunigen / zu verlangsamen).
Wenn Sie eine Chance haben, stöbern Sie in einer der DVDs von 'Roughnecks: The Starship Trooper Chronicles', auf denen der Herausgeber und die Animatoren Kommentare zu den Tricks hinter sich haben, die sie zu machen hatten, als sie anfingen, ihren Liefertermin zu überschreiten Schüsse recyceln, aber die Achse drehen, damit es nicht so offensichtlich ist, Farbkorrekturen, Maskieren von Dingen, die sie nicht mögen, Hinzufügen von Explosionen usw.
quelle
Sie haben Ihre Frage schon beantwortet. Animationsfilme weisen in der Regel einen höheren Detaillierungsgrad auf, was zu einer langen Renderzeit für jedes einzelne Bild führt.
Spiele hingegen enthalten weniger Details, da die Szene mindestens 30 Mal pro Sekunde gerendert werden muss. Das ist auch der Grund, warum Entwickler versuchen, so viele Assets (Texturen, Modelle usw.) wie möglich wiederzuverwenden, da das Rendern desselben Objekts an zwei Positionen viel schneller ist, als wenn alles eindeutig wäre. Sie müssen auch darauf achten, nicht zu viele Polygone in ihren Modellen zu verwenden, und stattdessen versuchen, mithilfe von Beleuchtung, Texturen, Bump-Mapping und anderen Techniken einen Eindruck von Tiefe zu erzielen.
Filme haben dieses Problem nicht. Sie gestalten die Szene nach ihren Wünschen und verwenden so viele und detaillierte Texturen, Modelle und Geometrien, wie sie benötigen, um die gewünschte Szene zu erzielen.
Man könnte jedoch argumentieren, dass die Spiele aufholen. Wenn Sie sich einige der am besten aussehenden Spiele der letzten Zeit ansehen, sind sie nicht mehr so weit von der Filmqualität entfernt wie früher. Natürlich können Sie in einer vorab gerenderten Szene immer mehr Details sehen als in einem Spiel, aber ich denke, der Unterschied wird in ein paar Jahren nicht mehr so deutlich sein.
quelle
Die anderen Antworten behandeln die Rohgrafikprobleme ausführlich, erwähnen jedoch nicht einen wichtigen Teil des Realismus von Spielen gegenüber Filmen und Trailern: die Animationen und Kamerabewegungen .
In einem Film oder Trailer kann jede Bewegung von Personen und Kameras sorgfältig koordiniert werden, um genau die richtigen Emotionen für den Moment zu zeigen, und sie müssen nie wiederholt werden. In Videospielen muss das Spiel in der Lage sein, sofort auf die Bewegungen des Spielers zu reagieren, und muss einen kleinen Pool von Aktienanimationen wiederverwenden, um die unbegrenzte Spielzeit zu füllen, die möglich sein kann.
Beispiele hierfür aus dem fraglichen Trailer sind, wenn der Therapeut nickt und ein "nicht schlechtes" Lächeln gibt , und wenn Lara die Armlehne greift, mit dem Bein wackelt oder ehrfürchtig in die Höhle schaut. Diese kleinen Dinge (oder das Fehlen von ihnen und die damit verbundenen "plastischen" Charaktere) wirken sich weit mehr auf den wahrgenommenen Realismus aus als kleinere Grafikverbesserungen.
Im Gegensatz zu den anderen Grafikunterschieden ist dies kein Problem, das möglicherweise durch mehr Rechenleistung gelöst werden kann: Es ist ein grundlegender Unterschied zwischen einer Welt, in der Skripte erstellt wurden, und einer Welt, die auf jede Ihrer Aktionen reagiert. In diesem Zusammenhang erwarte ich, dass der Realismus der heutigen Trailer auf absehbare Zeit das gesamte Gameplay übertreffen wird.
quelle
Neben den anderen großartigen Antworten, die bereits veröffentlicht wurden, ist es erwähnenswert, dass Spieleentwickler viele ihrer visuellen Effekte als einfache Texturen backen müssen, um die für Spiele erforderlichen schnellen Verarbeitungszeiten zu erreichen . Dies bedeutet, dass große Sorgfalt darauf verwendet werden muss, Effekte zu vermeiden, die nicht gut backen.
Ein wichtiger Effekt, der bei Videospielen nur schwer zu erzielen ist, ist das Subsurface Scattering (SSS) . Leider ist dieser Effekt wirklich wichtig, um eine realistisch aussehende menschliche Haut zu erzeugen. Das ist der Grund, warum viele "realistische" Videospielfiguren plastisch wirken.
Eine Möglichkeit für Entwickler, dieses Problem zu vermeiden, besteht darin, die Zeichen absichtlich in hellen Farben zu halten, um das plastische Erscheinungsbild zu beeinträchtigen, oder dem Gesicht viele Schatten und strukturelle Details (wie Bärte usw.) hinzuzufügen, um die ansonsten großen, durchgehenden Bereiche von aufzubrechen Haut.
quelle
Um eine der Fragen zu beantworten, die das OP in einem Kommentar gestellt hat:
Diese Frage ist schwieriger als es aussieht. Ich denke, eine gute Faustregel ist die folgende Gleichung (die ich übrigens erfunden habe):
Grundsätzlich bedeutet dies, dass bei Modellen mit relativ wenigen Spezialmaterialien (dh ohne Spiegel, Untergrund usw.) die Rechenzeit durch die Anzahl der Poligone groß ist. Dies ist normalerweise bei sehr einfachen Videospielgrafiken der Fall.
In der Praxis ist jedoch in neueren High-End-Spielen und insbesondere in Filmen die Raytracing-Funktion "normalerweise" der Täter. Warum? Gut aus zwei Gründen. Ich gebe zuerst den mathematischen Grund und dann am Ende meine Meinung zum wahren Grund.
Mathy Grund:
Update: Diese mathematische Erklärung ist möglicherweise nicht ganz korrekt. Weitere Informationen finden Sie in der Erläuterung zu CrazyCasta in den Kommentaren.
Angenommen, Sie haben 1000 Polygone und 3 Lichtquellen. Die kleinste Anzahl von Raytraces, die Sie ausführen müssen, ist 3 * 1000.
Wenn wir die Situation zu stark vereinfachen und davon ausgehen, dass 1 Strahlenspur = 1 Berechnung (eine grobe Unterschätzung), benötigen wir 3000 Berechnungen.
Angenommen, Sie möchten jetzt auch Überlegungen anstellen.
Die Standardeinstellungen für Reflections im Freeware-Programm Blender sind:
Bei diesen Einstellungen können wir davon ausgehen, dass diese supereinfache Reflexion im besten Fall den Rechenaufwand Ihres Modells verdoppelt .
Aber wie ich bereits sagte, ist dieses Beispiel sehr stark vereinfacht, und Sie können eine Vielzahl von Effekten (außer den bereits erwähnten) finden, die Ihre Renderzeit durch das Dach schießen.
Fall und Punkt: Versuchen Sie, Reflexionen mit
gloss=1
(die Standardeinstellung in Blender) zu rendern , drehen Sie den Glanz auf 0,01 herunter und vergleichen Sie die beiden Renderzeiten. Sie werden feststellen, dass die mit 0,01 Glanz viel langsamer sein wird, aber die Modellkomplexität wurde überhaupt nicht geändert.Mein qualitativer, aber realistischer Grund:
Durch Erhöhen der Netzkomplexität wird die Modellqualität nur bis zu einem Punkt verbessert. Nach ein paar Millionen Gesichtern gibt es wirklich nicht viel, was das Hinzufügen weiterer Gesichter ausmacht. Ich gehe sogar so weit, dass Sie mit der Glättung für die meisten allgemeinen Zwecke mit nur ein paar hundert Gesichtern davonkommen können.
Aber die Dinge, die fast immer einen Unterschied machen, sind die Beleuchtung, die Materialeffekte und die Strahlverfolgung. Das ist der Grund, warum Filme dazu neigen, eine große Anzahl davon zu verwenden, um die schönen Komplexitäten der realen Welt zu approximieren.
Ein guter Weg, um ein Gefühl für all diese Dinge zu bekommen, ist die Besetzungsliste am Ende der neuesten Disney-Animationen in Spielfilmlänge. Sie werden wahrscheinlich überrascht sein, wie viele Licht- und Texturleute sie haben.
quelle
:)
Es lohnt sich hinzuzufügen, dass Filmanimationen normalerweise eine Menge visueller Tricks ausführen, um die wahrgenommene Bewegung flüssiger zu machen.
Animatoren können zum Beispiel traditionelle Handanimationstechniken verwenden, die beim Echtzeit-Rendern normalerweise nicht verwendet werden, wie zum Beispiel Abstriche, Multiples oder Warping, um flüssigere Bewegungen zu erzeugen, trotz der niedrigeren Framerate, die Filme aufweisen (zumindest bis vor kurzem) ) angezeigt bei. Insbesondere die Verwendung von Abstrichen und Vielfachen wird durch die Verwendung von Maschen erschwert. Sie müssen Maschendeformationen für diese Art von Maschenverzerrung erzeugen, und ich glaube nicht, dass ich das bei 3D-Videospielen gesehen habe.
Frames mit sich schnell bewegenden Objekten können mit einer anderen Framerate gerendert und dann erneut kombiniert werden, um Bewegungsunschärfe in der Szene zu erzeugen. Bewegungsunschärfe ist heutzutage eine weit verbreitete Technik in 3D-Echtzeitgrafiken. Der Effekt ist in der Regel nicht von der hohen Qualität, die ein Animationshaus mit Dutzenden von Prozessoren erzielen kann (siehe die obigen "Zeit" -Antworten), was hauptsächlich darauf zurückzuführen ist, dass eine gefälschte Bewegungsunschärfe mehrere Nachbearbeitungsschritte pro Ebene erfordert. und eine große Anzahl von Zwischenrahmen, um wirklich flüssig zu sein.
Um diese Art von visuellem Trick auszuführen, um die wahrgenommene Qualität mit Echtzeitgrafiken effektiv zu verbessern, muss die Ausgabeframerate auf Raten begrenzt werden, die deutlich unter den maximal verfügbaren Zwischenframes liegen, die im Hintergrund gerendert werden. Es gibt wahrscheinlich mehrere Überlegungen, ob die geringfügigen Verbesserungen der Bildqualität für die Verwendung solcher Techniken den Verlust des Rahmenbudgets wert sind, insbesondere wenn es äußerst schwierig sein wird, die richtigen Ergebnisse zu erzielen.
Um einen Aspekt Ihrer Frage anzusprechen:
Vor allem Kunsthandwerk. Die Echtzeitkünstler haben nicht die Möglichkeit, jedes Einzelbild zu optimieren oder einmalige Gimmicks zu erstellen, um das Gesamtbild einer Szene oder eine Reaktion zu verbessern, nicht nur aufgrund von Zeitbeschränkungen (sowohl bei der Entwicklung als auch beim Rendern), sondern auch aufgrund von von praktischen Einschränkungen. Wie im Interaktivitätskommentar erwähnt, wird der Player wahrscheinlich nicht jedes Mal genau das Gleiche tun, aber der Film wird jedes Mal gleich abgespielt.
Dies bedeutet, dass der Videospielkünstler in Bezug auf die Modellqualität und die endgültige Renderqualität ganz andere Prioritäten hat als der Filmkünstler. Beide erfordern enorme Fähigkeiten, erfordern jedoch jeweils unterschiedliche Techniken. Ich gehe davon aus, dass sich diese Techniken zunehmend annähern, wenn die Rendering-Hardware auf Consumer-Ebene weiterentwickelt und weitere mathematische Genies bei Ihren SIGGRAPHs und GDCs auftauchen.
quelle
Es kann viele Jahre dauern, bis ein einzelner Animationsfilm auf einem einzelnen Tier einer Maschine gerendert ist. Da es vorgerendert ist, spielt es keine Rolle, wie viele kostspielige Effekte wie Lichtreflexe, Schatten usw. wir der Szene hinzufügen. Diese Filme werden normalerweise von Renderfarmen gerendert, auf denen Tausende von PCs miteinander verbunden sind und am selben Job arbeiten.
Der Grund, warum wir nicht dieselbe Qualität in Echtzeit erzielen können, ist einfach, dass das Gerät das aktuelle Bild in etwa 16 ms rendern muss, um eine FPS von 60 zu erreichen. Ein einzelnes Bild für einen animierten Film kann Stunden dauern, um auf einem einzelnen PC gerendert zu werden.
In einem Spiel geht neben der Grafik eine Menge anderer Dinge vor sich. In jedem Frame gibt es Unmengen von Berechnungen. Einfach gesagt, ein Animationsfilm muss nicht den Schaden berechnen, den der Spieler von einem Raketenwerfer erleidet. Sie animieren nur die Leisten und die Polygone werden gerendert.
Zum Glück gibt es einige geniale Menschen, die auf diesem Planeten herumlaufen. Abgesehen von besseren PCs, die mehr Polygone und größere Texturen rendern können, gibt es einige raffinierte Erfindungen, die wie normale Karten erstellt wurden und Licht / Schatten auf einem flachen Polygon sehr billig animieren können, sodass ein langweiliges 3D-Objekt außergewöhnlich detailliert aussieht.
Einige dieser teuren Effekte, die Filme erzeugen, haben das gewisse Extra.
Kurz gesagt, wir müssen uns "billige" Tricks einfallen lassen, damit ein Spiel gut aussieht. Aber das menschliche Auge ist schwer zu täuschen.
quelle