Wie inFAMOUS: Second Son nutzte die 8 GB RAM, CPU und GPU-Computing der PS4, um unsere Kiefer fallen zu lassen

inFAMOUS: Zweiter Sohnist definitiv eines der visuell beeindruckendsten Spiele, die derzeit auf einem System der neuen Generation verfügbar sind, und auf der Game Developers Conference erklärte der Lead Engine Programmer Adrian Bentley die Vor- und Nachteile seiner Engine und wie die Ressourcen der PS4 für das Spiel verwendet wurden.

Interessanterweise erfahren wir als erstes, dass das Spiel nur 4,5 GB RAM und 6 der acht Kerne der PS4-CPU verwendet. Die Daten zum Gedächtnis stimmen mit dem überein, worüber geteilt wurde Der Orden: 1886 .

Das haben wir aus dem Panel gelernt:

  • Der Arbeitsspeicher der PS4 ermöglichte es Sucker Punch, das Speicherbudget um das Vier- bis Achtfache zu erhöhen.
  • Die E/A-Geschwindigkeit (Eingabe/Ausgabe) war ein großes Problem, sogar von der Festplatte. Eingabe-/Ausgabegeschwindigkeit ist die Kommunikationsgeschwindigkeit zwischen dem Antrieb und der CPU.
  • Es wurden Maßnahmen ergriffen, um den I/O-Druck zu reduzieren, sieben weitere Streaming-Chunks mit einem Speicherbudget von etwa 240 MiB (Mebibyte, im Grunde ein professionelleres Äquivalent von Megabyte) zwischenzuspeichern und immer größere Media-Streaming-Seiten mit einem Budget von 40 MiB zu verwenden.
  • Texturatlanten wurden für viele Zwecke mit einem Budget von über 200 MiB verwendet. Ein Texturatlas ist eine große Textur, die viele Untertexturen enthält, die für viele Objekte verwendet werden können, anstatt separate Texturdateien für jedes Objekt zu haben.
  • Der Umgebungsindex wurde pro statischem Vertex mit einem Budget von etwa 30 MiB zwischengespeichert.
  • Die gekachelte Lichtliste wurde für Vorwärtspass (4 MiB) gespeichert.
  • Der Code wurde einfach gehalten und große lineare Puffer verwendet.
  • Die meisten der tatsächlich verfügbaren 4,5 GB RAM wurden verwendet. Die vollständige Zuordnung können Sie unten einsehen.

inFAMOUSMemory

Wir erfahren auch, dass die CPU während des Betriebs Hunderte von verschiedenen Aufgaben erledigtinFAMOUS: Zweiter Sohn. Jeder „Job“ ist eine einzelne Rechenaufgabe.

iNFAMOUSJobs

Unten sehen wir den Unterschied in den Aufgaben, die von den SPUs (Synergistic Processing Unit) des Cell-Prozessors der PS3 zum Rendern ausgeführt werdeninFAMOUS 2, und die sechs verfügbaren Kerne der PS4-CPU beim Rendernberüchtigt: Zweiter Sohn.



iNFAMOUS2Render iNFAMOUSSSRender

In der Galerie unten sehen Sie, wie beim Rendern einer Szene Aufgaben zwischen Threads aufgeteilt und Jobs in die Warteschlange gestellt werden.


Separator

Die CPU der PS4 ist als 'anständig' definiert und kann 30.000 Ziehungen in 10.000 tatsächlichen Ziehungsaufrufen verarbeiten, 100-400 asynchrone Raycasts pro Frame, 50-100 animierte Charaktere mit 300+ Bones, auch wenn Prefetch kein Ersatz für die direkte SPU ist Speicherzugriff.

Es war auch schwierig, die CPU zu maximieren (während wir in einem früheren Interview erfahren haben, dass die GPU die meiste Zeit mit ihrer maximalen Kapazität verwendet wird), wobei 50-70% für Hauptaufgaben und 5-16% für andere Threads verwendet werden.

Unten sehen wir eine Aufschlüsselung der Geometriepuffer zwischen den verschiedenen im Spiel verwendeten Effekten.

iNFAMOUSSSgpuffer

Es wurden physikalisch basierte Materialien und Beleuchtung verwendet. Sie sind für Künstler weniger intuitiv, aber besser für Beleuchtungsänderungen. Neben vorintegrierter Haut, anistropischen Stoffen und Haaren und Glas wurde in den meisten Fällen auch eine verzögerte Schattierung eingesetzt.

Es werden verschiedene Postproduktionseffekte implementiert, die in der folgenden Folie aufgeschlüsselt sind:

iNFAMOUSSPost

Die folgenden Effekte wurden auch verwendet:

  • Indirekte diffuse Beleuchtung mit einem Budget von 25 MiB für die ganze Welt und einem Ressourcenaufwand von 1-3 ms. Die Daten wurden zwischengespeichert, um redundante Berechnungen zu vermeiden.
  • Indirekte spiegelnde Beleuchtung mit lokalen spiegelnden Cubemaps und spiegelnder Spiegelung im Bildschirmbereich.

Sie können einen Screenshot-Vergleich sehen, der das Spiel zeigt mit und ohne diese Effekte hier .

GPU-Computing wurde für einige Renderings des Spiels verwendet, was sich positiv auf das Caching von Daten wie Tiled Lighting und Specular Probe-Anwendung, Partikel- und Mesh-Verarbeitung und einfachere Codegenerierung auswirkte. Es bringt aber auch einige Probleme mit sich. Obwohl die Rechenleistung schnell ist, kann die Synchronisierung mit der CPU ein Problem darstellen. Es wurde durch das Frontloading von Rechenphasen oder die Verwendung von Rechenwarteschlangen gelöst, die neben der Grafikpipeline ausgeführt wurden. Die Registeranzahl wurde ebenfalls reduziert, um die Latenz besser zu verbergen. Letztendlich wird GPU-Computing als 'Super awesome' definiert

Die folgenden Folien zeigen, wie Compute für verschiedene Effekte verwendet wurde:

Berechnen1 Berechnen2 Berechnen3 Berechnen4 Berechnen5

Als Zusammenfassung erwähnte Bentley einige Elemente, die wir (oder zumindest die Entwickler unter uns, Spieler werden nur die Auswirkungen sehen) in Zukunft sehen könnten:

  • Viel mehr Threading und Computing.
  • leichtere Instanziierung.
  • Verbesserung der erforderlichen Synchronisierungszeit.
  • weniger manuelle Umgebung und schnelleres Backen.
  • Bessere entfernte Umgebungs-LOD (Detailgenauigkeit).
  • Überholtes Wegesystem.
  • Einfachere Skriptreferenz für Teile von Objekten.
  • Weniger schwere Gegenstände.

Wenn Sie alle in der Präsentation verwendeten Folien sehen möchten, können Sie sie herunterladen Hier . Unten sehen Sie auch weitere in Arbeit befindliche Aufnahmen.