Neue Wasser-Engine in Far Cry 5: FP16-Berechnungen auf AMD-Grafikkarten

21
Special Roland Austinat (US-Korrespondent) Als bevorzugte Quelle auf Google hinzufügen 8,34 €
21 Angel Bug
Quelle: PC Games Hardware

Kommende Woche erscheint Far Cry 5, Ubisofts neuestes Open-World-Abenteuer. Auf der GDC 2018 in San Francisco stellten die Entwickler eine komplett neue Wasser-Engine vor, die sie für das Spiel entwickelt haben. Und endlich weiß man auch, welche Effekte auf FP16-Berechnungen zurückgreifen und damit AMD-Grafikkarten besonders munden.

Wasser spielt in jedem Far Cry eine große Rolle. Das erste, noch von Crytek entwickelte Action-Adventure versetzte uns auf eine vom feuchten Nass umgebene tropische Insel. Auch in den Nachfolgern ging's immer wieder ins Wasser, das von den Programmierern immer weiter verbessert wurde.

Doch für Far Cry 5 wollten die Entwickler etwas tiefer in die Trickkiste greifen. "In Montana, dem Schauplatz unseres Spiels, gibt es jede Menge Flüsse und Stromschnellen - die hätten wir mit unseren alten Shadern nicht so elegant anlegen können", sagt Branislav Grujic, 3D Team Lead Programmer bei Ubisoft Toronto. "Dazu kommen über 50 Wasserfälle, die wir früher von Hand angefertigt hätten, was enorme Zeit gekostet hätte. Und Schwefelgruben, die mit den alten Routinen nicht möglich gewesen wären."

Eine Spielwelt aus 4.096 Sektoren

23 Christian Cutocheras und Branislav Grujic Quelle: PC Games Hardware 23 Christian Cutocheras und Branislav Grujic Die Welt von Far Cry 5 ist in Sektoren aufgeteilt, von denen es 64 mal 64, also 4.096 Stück gibt. Einer von vielen Seen beansprucht etwa 20 bis 30 davon. Und weil es im US-Bundesstaat Montana so viele Gewässer gibt, wäre das in Handarbeit eine Heidenarbeit gewesen.

Die Entwickler griffen daher zur prozeduralen Bewässerung: Für einen Fluss werden beispielsweise Randpunkte auf dem Terrain vermerkt, dann mit dem Fluss-Tool automatisch mit Wasser gefüllt. Prozedurale erstellte Wasserfälle rauschen dank Foam Mapping besonders schick in die Tiefe, während ein Hubschrauber über einer Schwefelgrube Partikel aus dieser loslöst und in die Luft hochwirbelt.

Renderpfad und Schaumkronen

Der Renderpfad, der für die realistische Darstellung des Wassers zuständig ist, nutzt einige Kunstgriffe. Durch geschickte Occlusion-Berechnungen und die Unterteilung in Nah- und Fern-Rendering muss nicht jeder Wassertropfen in der höchsten Detailstufe errechnet werden. Bei den bisher von Hand gezeichneten Normal Maps der Wellen auf der Wasseroberfläche setzte das Team in Far Cry 5 auf deren automatische Generierung per Rauschfunktion, der die Brown'sche Molekularbewegung zugrunde liegt.

An Felsen und Küstengebiete bilden sich oft Schaumkronen, die erneut mit Rauschfunktionen automatisch erstellt werden. Hier griffen die Entwickler zu einem Trick: Die Foam Maps der gesamten Spielwelt sind in die Spielwelt "eingebacken", denn deren individuelle Berechnung hätte zu viel Rechenpower von anderen Prozessen und nicht zuletzt dem eigentlichen Spiel abgezogen. Flow Maps werden ebenfalls automatisch erstellt, aber dynamisch berechnet. Sie basieren auf Spline- und Flood-Fill-Routinen, die in der Nähe des Spielers detaillierter dargestellt werden als in größerer Entfernung.

Schneller dank halber Genauigkeit

Bugbereinigende Wasserglättungen, Beleuchtung und Lichtbrechungen erfordern ebenfalls jede Menge Rechenpower. Christian Cutocheras, Member of Technical Staff, AMD, der den Ubisoft-Designern mit Rat und Tat zur Seite stand, erläutert einen Kunstgriff, auf den die Programmierer setzten: "Zur Optimierung der Shader reduzieren wir die Rechengenauigkeit auf Half Precision mit 16 Bit." Das durfte jedoch nicht automatisch passieren: Entwickler und QA-Team mussten die gesamte Spielwelt nach Bereichen durchforsten, in denen die verringerte Genauigkeit den Spielern nicht auffällt.

Wir erinnern uns: Vor allem für die Radeon-RX-Vega-Grafikkarten ist die Nutzung von FP16-Berechnungen mit halber Genauigkeit interessant, da Vega 10 diese mit doppelter Geschwindigkeit ausführen kann ("Rapid Packed Math"). Polaris kann FP16 auch nativ ausführen, aber nicht mit doppeltem FP32-Durchsatz und spart daher nur Ressourcen.

Für weitere Knobelaufgaben sorgten unterschiedlich tiefe, aufeinanderstoßende Gewässer, deren gelegentliche Kanten per Compute Shader etwas unscharf gemacht wurden, um einen sanfteren Übergang zu gewährleisten. Und dann war da noch die Angelschnur, die sowohl im vorderen als auch im hinteren Teil des Bildes zu sehen ist und munter an der Rute auf und ab tanzte ...

Zwei Millisekunden pro Frame

Das Ziel der Entwickler war, die Wasserberechnungen in zwei Millisekunden pro Frame abzuschließen. Mit 1,919 Millisekunden erreichten sie ihr Ziel, durch den Einsatz von Async Compute gelang es ihnen sogar, diese Zeit um 0,582 auf 1,337 Millisekunden zu senken. Die "teuersten" Operationen, die Tesselation und das Zusammenfügen des Gesamtbildes, ließen sich jedoch davon nicht beeindrucken.

Beeindruckend hingegen, dass das Wassersystem nur ein Teil des großen Ganzen ist - dazu kommen im fertigen Spiel dann beispielsweise noch Partikel und die Aktionen von Spieler und NPCs, die ihrerseits der Umwelt ihren Stempel aufdrücken.

Bildergalerie

21
    • Kommentare (21)

      Zur Diskussion im Forum
      • Von psYcho-edgE Komplett-PC-Aufrüster(in)
        Zitat von manimani89
        tress fx existiert doch nicht mehr oder? kenne ausser tomb raider jetzt kein spiel
        Tomb Raider (2013), TressFX 1.2
        Lichdom, TFX 2.0
        Rise of the Tomb Raider, TFX 3.0
        Deus Ex: Mankind Divided, PureHair(TFX 3.0)

        Mehr gibt's aber tatsächlich nicht. Wobei sich die Anzahl der Titel mit HairWorks auch in Grenzen hält.
      • Von psYcho-edgE Komplett-PC-Aufrüster(in)
        Zitat von manimani89
        tress fx existiert doch nicht mehr oder? kenne ausser tomb raider jetzt kein spiel
        Tomb Raider (2013), TressFX 1.2
        Lichdom, TFX 2.0
        Rise of the Tomb Raider, TFX 3.0
        Deus Ex: Mankind Divided, PureHair(TFX 3.0)

        Mehr gibt's aber tatsächlich nicht. Wobei sich die Anzahl der Titel mit HairWorks auch in Grenzen hält.
      • Von Locuza Lötkolbengott/-göttin
        Zitat von Solo-Joe
        Die Optimierung darf man eher der PS4 / PS4 Pro verdanken. Diese unterstützt das Feature auch. Nur für AMD Desktop hätte es das nie gegeben.
        Nur die PS4 Pro in dem Fall.

        Zitat von Elliot87
        Weiß jemand ob "HairWorks" zum einsatz kommt?
        Nette Grüße aus dem Norden
        Nicht mehr, es gab schon bei Far Cry Primal nach Far Cry 4 kein HairWorks mehr.

        Zitat von Edelhamster
        Da würde ich wenn noch eher auf TressFX tippen^^
        Das hätte man ansonsten wohl sehr wahrscheinlich schon davor beworben, dass Optionsmenü zeigt in der Hinsicht keine Optionen:
        Far Cry 5's graphical options menu has been revealed | OC3D News

        Zitat von manimani89
        tress fx existiert doch nicht mehr oder? kenne ausser tomb raider jetzt kein spiel
        Tomb Raider (2013) mit TressFX 1.0, Lichdom mit TressFX 2.0, Deus Ex: Mankind Divided mit PureHair (Angelehnt an der Kooperation mit AMD und TressFX3.0).
        Monster Hunter Online hatte auch eine TressFX Ankündigung:
        AMD Radeon™ to Enable Exciting New Optimizations and Enhancements for Popular China Game, Monster Hunter Online

        Zitat von hugo-03

        weis man schon welche API Far Cry 5 nutzt ?
        Das ist eine gute Frage, DX11 ja, aber auch DX12?
        Offiziell gab es dazu keine Aussagen und FP16 könnte man über Shader-Instrinsics auch für DX11 anbieten und die Async Compute Geschichte beim Wasser könnte sich sogar nur auf Konsolen beziehen.

        Bald gibt es vielleicht auch eine neuere Version, v4 ist schon etwas älter und AMD hat auf der GDC eine neue Haarpräsentation (Simulating and Rendering Physically-Realistic Curly Hair).
        GDC 2018 Presentations - GPUOpen
        Man hat Double-Rate FP16 bei TressFX als Beispiel gezeigt, dass könnte bald in einer neuen Version mit weiteren Verbesserungen einwandern?
      • Von Khabarak Volt-Modder(in)
        Zitat von manimani89
        tress fx existiert doch nicht mehr oder? kenne ausser tomb raider jetzt kein spiel
        Zumindest die GitHub Seite würde dir widersprechen.
        Aktuell ist V4:

        GitHub - GPUOpen-Effects/TressFX: DirectX 11 library that provides convenient access to realistically rendered and simulated hair and fur
      • Von scorplord Software-Overclocker(in)
        Zitat von Solo-Joe
        Die Optimierung darf man eher der PS4 / PS4 Pro verdanken. Diese unterstützt das Feature auch. Nur für AMD Desktop hätte es das nie gegeben.
        Naja von der Seite die uns Kunden zumindest präsentiert wurde (News und Berichte) war das für Vega bereits angekündigt als es dann rauskam das die PS4 Pro das haben wird. Vielleicht wollte Sony es haben oder AMD hat es vorgeschlagen wer weiß

        Zitat von manimani89
        tress fx existiert doch nicht mehr oder? kenne ausser tomb raider jetzt kein spiel
        TressFX kann man als Version 1 sehen was von AMD stammt. In Rise of the Tomb Raider haben die Entwickler mit AMD Version 2 gemacht sozusagen. Ich glaube PureHair oder so nennen die das.
      • Von Kanallie Komplett-PC-Aufrüster(in)
        Zitat von Laggy.NET
        Bin da auch mal auf die Performance gespannt.

        Man muss aber sagen, dass an Wasserstellen die Performance grundsätzlich in Spielen relativ hoch ist, da die gesamte Wasseroberfläche frei von Vegetation und allgemein Objekten ist.

        Also selbst wenn das wasser fordernd ist, erwarte ich grundsätzlich steigende FPS, sobald man ans Wasser kommt...

        Und wenn das tatsächlich der Fall ist, dann wärs praktisch schon wieder egal, ob das Wasser mit FP16 jetzt noch schneller berechnet wird oder nicht. Wichtig sind die Stellen im Spiel, die die performance am stärksten sinken lassen. Und da muss sich erstmal zeigen, welche Stellen das sind... Ich vermute wie gesagt, dass das Wasser da sowieso nicht dazuzählt.
        Es geht aber auch um die Interaktion von Wasser und hier heißt es doch es ist am meisten Leistung vergraben.
        z.B. Spieler springt ins Wasser = Wellen usw. hier brechen oft die FPS ein.
        Oder eine Welle am Meer

        Oder teusche ich mich?
      Direkt zum Diskussionsende
  • Print / Abo
    Apps
    PCGH Magazin 08/2026 PC Games 08/2026 play5 08/2026 N-Zone 08/2026 Linux Magazin 08/2026 LinuxUser 08/2026 Raspberry Pi Geek 09/2026
    PC Games Hardware PC Games Linux Magazin Raspberry Pi Geek Computec Kiosk