Battlefield 3 und Need for Speed The Run: DICE spricht über die Rendering- und Performance-Tricks der Frostbite 2.0
Auf der Siggraph 2011 hat DICE erneut über die Frostbite-2.0-Engine referiert, welche in Battlefield 3 und Need for Speed The Run zum Einsatz kommt. Der Fokus liegt hierbei auf Rendering-Tricks, die einerseits eine gute bis sehr gute Optik erlauben und andererseits die Performance steigern oder hochhalten.
Bereits letztes Jahr erläuterte DICEs Johan Andersson auf der Siggraph (Special Interest Group on GRAPHics and Interactive Techniques) Teile der Frostbite-2.0-Engine, beispielsweise Themen wie MLAA oder Tile-based Deferred Shading. Auch auf der diesjährigen Veranstaltung war der Technikmotor der Schweden ein Thema auf der Konferenz. Colin Barré-Brisebos (Battlefield 3) und John White (Need for Speed - The Run) sprachen im Duett über eine der fünf Säulen der Frostbite-2.0-Engine, welche sich aus Animation, Audio, Scale, Destruction und Rendering zusammensetzt. Letztere wurde in der "More Performance! Five Rendering Ideas from Battlefield 3 and Need For Speed The Run" ausführlich thematisiert - PC Games Hardware fasst zusammen.
Der heute kaum noch wegzudenkende Bokeh-Filter für die Tiefenunschärfe (Depth of Field) wird beispielsweise in Zwischensequenzen exzessiv genutzt, auch für Screenshots ist der Bokeh ein äußerst beliebtes Stilmittel. DICE suchte einen Weg, den Spielzeug-Look zu umgehen, ohne die enorm füllratenlastige Point-Sprite-Variante des Bokeh zu nutzen, wie sie Crytek in Crysis 2 mit DX11 oder Epic in der Samaritan-Techdemo verwenden. Daher haben sich die Schweden für eine abgeänderte, schräge Box-Version samt sechseckiger Weichzeichnung entschieden. Dies ist zusammen mit zwei Anpassungen schnell und bietet das gewünschte Resultat.
Ein Thema der Präsentation war erneut das Tile-based Deferred Lighting (TBDL). Dieses zerlegt das Bild in Kacheln und speichert die Beleuchtungsinformationen in einem speziellen Puffer (dem G-Buffer), danach erfolgt das parallele Berechnen der Beleuchtung und zum Schluss werden alle Kacheln zusammengefügt. TBDL lohnt sich vor allem bei mehreren Lichtquellen samt Schatten und viel Geometrie, also beispielsweise, wenn Wände einstürzen und dynamisch auf Licht reagieren sollen (Stichwort Destruction 3.0). TBDL ist in die Compute Shader unter DirectX 11 implementiert, was den Render-Prozess gegenüber klassischem Deferred Lighting beschleunigt.
Des Weiteren geht DICE auf Culling ein, also das vorzeitige Verwerfen von Pixeln, die nicht im Bereich dessen liegen, was in der gerenderten Szene sichtbar ist und von Shadern erfasst wird. Eine andere Technik zur Steigerung der Performance ist die Farbunterabtastung, im Englischen Chroma Subsampling (als Beispielbild hat sich DICE übrigens das von Wikipedia geschnappt). Hierbei wird das Bild auf Helligkeits- sowie Farbinformation untersucht und nur letztere reduziert - das spart massiv Bandbreite, laut den Schweden ist nach der Farbunterabtastung nur noch ein Viertel der Bandbreite nötig. Da hierbei jedoch die Shader-Einheiten der meisten Grafikkarten ungünstig angesprochen werden, packt DICE vier Helligkeitsinformationen zusammen in einen Rechenvorhang - später soll hier außerdem noch MLAA mit eingearbeitet werden.
Abschließend wird der Vergleich von Screen-Space Ambient Occlusion (SSAO) und dem "großartigen" Horizon-based Ambient Occlusion (HBAO) erläutert: Ersteres ist für Mittelklasse-PCs und die Konsolen gedacht, letzteres für High-End-Maschinen und benötigt die dreifache (!) Rechenzeit. Die subtile eingesetzte Umgebungsverdeckung unterstützt die globale Beleuchtung, auf welche DICE großen Wert legt.
Quelle: DICE

Jupp, einen Radial Blur samt DoF nutzen diverse Spiele.
Ich denke auch eher, dass mit dem Bokeh Filter nicht mehr Realismus einzug erhalten soll, sondern ein "Filmähnliches" Erlebnis. Dort wird ja auch oft sehr übertrieben damit gearbeitet um den Zuschauer, wie soll ich es beschreiben, mehr ins Geschehen eintauchen zu lassen.
Somit wird der Bokeh Filter sicher auch eher für Zwischensequenzen, gescriptete Ereignisse oder spezielle Sequenzen eingesetzt. Vorstellbar wäre zb. das man bei einer sehr nahen Granatenexplosion nur noch den Boden vor seinen Füßen scharf sieht um eben die Heftigkeit der Explosion stärker nachvollziehbar werden zu lassen. Ich meine, in Crysis 2 oder anderen Spielen würde das bereits so oder so ähnlich eingesetzt.
bye
Spinal
Du überschätzt da einiges. Zuerst muss die Bewegung des Auges kommen. Diese muss von irgendwas registriert werden. Diese registration muss noch in eine neue Positionsbestimmung umgesetzt werden(Und zwar verdammt genau. Es macht einen unterschied, ob ich gerade auf die Figur genau in der Mitte des Bildes gucke, oder knapp am kopf vorbei auf den Hintergrund.). Diese neue Position muss dem Renderer mitgeteilt werden. Dieser muss mit dieser Information das System neu rendern. Dieses neue Bild muss zum TFT und von da aus aufs Bild.
Ohne Daten würde ich sagen, darf das Bild nicht mehr als 100-200ms verzögert sein, sonst merken wir das und empfinden es als unangenehm. Da dürfte es also in der Zeit schon recht knapp werdne.
das wage ich zu bezweifeln, Verarbeitungsgeschwindigkeit ist nicht der Vorteil des menschlichen Gehirns. Ein AMD 4-Kerner schafft etwa 20 GFLOPS, also 20 Milliarden Gleitkommaoperationen pro Sekunde.
Mit einem Zehntel davon läßt sich schon gut auf das Auge reagieren.
Nur um mal die Größenordnung zurecht zu rücken.
Nur gibbet kein System, dass schnell genug wäre. Die Augen justieren schneller als jeder PC + GPU + TFT reagieren kann.