Minecraft RTX analysiert: Bildqualität, Leistung, Speicherhunger, DLSS und mehr [Update]
Jetzt aktualisiert: Minecraft RTX im Techniktest mit Benchmarks: Seit dem 16. April können Besitzer der Minecraft Windows 10 Edition kostenlos auf dem Raytracing-Pfad wandeln. PC Games Hardware verrät, was Sie für die hochwertige Beleuchtung brauchen, wie die Leistung ausfällt und inwiefern sich Nvidias KI-Antialiasing DLSS 2.0 auswirkt.
Update vom 17. April: Mittlerweile ist die Minecraft RTX Beta planmäßig live gegangen (neben dem Geforce-Treiber 445.87) und mit ihr auch die letzte der sechs versprochenen RTX-Themenwelten. "Neon District" treibt das Spiel aus verschiedenartigen Materialien und Objektdichte auf die Spitze und sieht fantastisch aus. Wir haben einige Impressionen aus der Karte an den Anfang der Bildergalerie gepackt. Außerdem möchten wir auf ein sehenswertes Video der englischsprachigen Kollegen von Digitalfoundry hinweisen, welche sich die Mühe gemacht haben, die Errungenschaften des Pathtracings mithilfe eines selbst gebauten Levels zu demonstrieren.
Außerdem haben wir einen Fehler unsererseits korrigiert, welcher die internen DLSS-Auflösungen betrifft. Wir gingen fälschlicherweise davon aus, dass in Minecraft RTX immer "DLSS Qualität" zum Einsatz kommt. Dem ist jedoch nicht so, wie Nvidia auf seiner offiziellen Präsentationsseite ausführt. Stattdessen wird die DLSS-Auflösung in Abhängigkeit zur eingestellten Auflösung skaliert. Dabei gilt die Regel: Je höher die Wunsch-Auflösung, desto aggressiver die Einsparung mittels DLSS. Wir haben die entsprechenden Informationen im Artikel aktualisiert. Generelle Informationen zu den DLSS-Auflösungsfaktoren erhalten Sie in diesem Artikel.
Minecraft kann am PC seit dem 16. April mit Raytracing bestaunt werden, sofern die Mindestvoraussetzungen erfüllt werden. Neben Minecraft in der modernen Windows-10-Edition ist das gleichnamige Betriebssystem in der aktuellen Version 1909 notwendig, sowie natürlich entsprechende Hardware. Microsoft und Nvidia haben sich zusammengetan, um Minecraft RTX zu erschaffen und Geforce-Nutzern einen Mehrwert zu liefern. Dementsprechend wird für Minecraft RTX eine Geforce-Grafikkarte der RTX-20-Reihe empfohlen, da nur diese über Hardware-Einheiten zur Raytracing-Beschleunigung verfügen. Die älteren Pascal-GPUs und "Turing Light" in Gestalt einer Geforce GTX 1660 (Ti/Super) sind theoretisch ebenfalls in der Lage, Minecraft RTX darzustellen, da der Treiber Software-Raytracing erlaubt, an flüssige Bildraten ist dabei jedoch nicht zu denken.
Doch lohnt sich Minecraft RTX überhaupt? PC Games Hardware hat unzählige Stunden mit den neuartig beleuchteten Klötzchen verbracht und sprichwörtlich Bauklötze gestaunt. Vorweg: Minecraft war noch nie so schön wie heute und es gibt aufgrund des hochdynamischen, endlos kreativen Spiels wohl keinen besseren Einsatzzweck für eine Beleuchtung, die sich automatisch an neue Gegebenheiten in der Spieltwelt anpasst.
Minecraft RTX: Technik im Detail
Minecraft RTX beschreitet den Pfad, welchen Nvidia mit Quake II RTX eingeschlagen hat: Pathtracing des kompletten Bildes. Die Effekte umfassen path-traced Reflexionen, globale Beleuchtung, volumetrische Effekte wie God-Rays, Schatten sowie den Einbezug neuer, physikbasierter Materialeigenschaften. Der Unterschied zwischen Minecraft "Vanilla" und Minecraft RTX ist tatsächlich in etwa so, als mache man in einem dunklen Raum das Licht an: Details kommen zum Vorschein, Schatten fallen glaubhaft, Ecken verdunkeln sich, Dinge werden indirekt angestrahlt oder spiegeln sich in glatten Oberflächen. All das basiert auf Direct X 12 Raytracing, kurz DXR, und nicht etwa Vulkan, schließlich handelt es sich um ein Spiel aus dem Hause Microsoft. Technisch ist das RTX-Update folglich ein gigantischer Sprung, wenngleich die Grafik unter dem ganzen Make-up gleich bleibt: Noch immer besteht die Spielwelt aus bewusst pixeligen Würfeln.
Bildergalerie
Raytracing und Pathtracing sind verwandte Techniken, bei beiden handelt es sich um Ansätze der Strahlverfolgung. Bei beiden Ansätzen wird ein Strahl von der Kamera (beziehungsweise genauer: Von der Kamera aus für jeden Pixel auf dem Bildschirm mindestens ein Strahl) ausgesandt. Dann wird geprüft, ob und wo sich ein Ray mit einem 3D-Objekt (beziehungsweise eines Polygons oder Primitives) in der Szene schneidet und anschließend ein Fühler zur Lichtquelle ausgesandt, der prüft, ob diese von dem Primitive verdeckt wird (dann wird ein Schatten gezeichnet). Nun kann obendrein erörtert werden, ob der Strahl von dem Primitive abprallt (also reflektiert wird), ob er es durchdringt und dabei eventuell gebrochen wird (zum Beispiel durch eine transparente Wasseroberfläche oder einen Glaskörper) oder welche Anteile des Spektrums von der Oberfläche absorbiert und welche abgestrahlt werden und danach eine andere Oberfläche mit diesen Anteilen des Lichts erhellen können (indirektes Licht oder auch Globale Beleuchtung). Ray- und Pathtracing funktionieren prinzipiell nach den gleichen, hier genannten Umständen, sie unterscheiden sich jedoch in einem gravierenden Punkt, und dieser betrifft die Art und Weise, wie ein Strahl verfolgt wird:
Bei Raytracing wird ein Ray von einem Bildpunkt entsandt, dann wird geprüft, ob er auf ein Objekt in der Szene trifft. Nun wird erörtert, ob der Ray von der Oberfläche reflektiert wird (nicht nötig etwa bei Schatten, die aufgrunddessen zu den simpelsten Raytracing-Effekten zählen) und eventuell ein weiterer Ray (Secondary Ray) von dieser Oberfläche verschossen, bei dem ebenfalls geprüft wird, ob und wo er im Raum auf ein Primitive stößt. Anschließend wird ein Prüfstrahl (Shadow-Ray) zu jeder Lichtquelle in der Szene gesendet, um zu ermitteln, ob das Objekt verdeckt wird, also im Schatten liegt oder nicht. Anschließend wird der Ursprungspixel mit einem Mittelwert der aufgegriffenen Berechnungen gefärbt.
Beim Pathtracing unterscheidet sich der Ansatz, nachdem der erste Abpraller geschehen ist. Im Gegensatz zum immer noch nicht realistischen, denn bei der Herangehensweise bei der Strahlverfolgung im Vergleich zur optischen Physik noch immer sehr abstraktem Raytracing ist Pathtracing eine deutlich stärker physikbasierte Technik. Pathtracing simuliert einen physikalisch realistischen Weg eines Lichtstrahls durch die gesamte Szene (nur umgekehrt, von der Kamera ausgehend). Trifft ein Strahl auf ein Objekt, so wird geprüft, ob und wie stark er absorbiert und ob er reflektiert wird. Statt nun wie beim Raytracing unter Umständen einen Secondary Ray und zu casten und schlussendlich den Weg zu jeder Lichtquelle auf Verdeckung überprüfen, wird der Ray beim Pathtracing nach jedem Abprallen weiter verfolgt. Dabei wird rigoros auf mathematische Verfahren der Stochastik gesetzt, ein in diese Rendergleichung (der Umstand einer korrekten, Globalen Beleuchtung einer Szene, s. "The Rendering Equasion" James T. Kajiya, 1986) einfließender Algorithmus ist die sogenannte Monte-Carlo-Integration. Diese Monte-Carlo-Algorithmen enthalten einen randomisierten, also zufallsbestimmten Faktor und erörtern, in welche Richtung der zweite Ray (Pathtracing nutzt für alle Berechnungen zu allermindest einen Secondary Ray) abprallt. Diese Form von Pathtracing ist aufgrund der verwendeten Algorithmen auch als Stochastic- oder Monte-Carlo-Path-Tracing bekannt.
Wenn der Strahl also auf eine Oberfläche trifft, wird nicht wie beim Raytracing ein Pfad zu jeder Lichtquelle geprüft und dann der Ursprungspixel auf dem Monitor entsprechend eingefärbt, sondern der Strahl springt (zufällig bestimmt) weiter zur nächsten Oberfläche und von dort aus weiter und weiter, bis er komplett absorbiert wurde, die (vorgegebende, in der Realität nicht zutreffende) Maximalzahl Bounces erreicht wurde oder bis der Strahl auf eine Lichtquelle trifft. Dann wird der komplette Pfad zurückverfolgt und jeder der Abpraller berücksichtigt, all das abgegebene oder aufgenommene Licht und dessen Farbanteile evaluiert und schlussendlich aus einem Mittelwert all dieser Anteile der Farbwert des für den Spieler sichtbaren Pixels berechnet, von dem der Ray seine Reise begann. Nach dem Verschicken von genügend Rays wird so die gesamte Szene durch Pathtracing erfasst.
Pathtracing bildet sämtliche Raytracing-Effekte, darunter also Spiegelungen, eine Globale Beleuchtung, Refraktionen sowie korrekte, weiche Schatten "automatisch" und auf einmal ab, es ist also eigentlich um vielmehr "Raytracing-Grafik", als die bisherigen in Spielen eingesetzten hybriden Raytracing-Effekte. Pathtracing kommt allerdings auch mit dem Umstand daher, dass es wesentlich anspruchsvoller zu berechnen ist. Und Pathtracing enthält noch eine kritische Komponente: Die Monte-Carlo-Intregration. Diese ist aufgrund ihres non-deterministischen, da zufallsgenerierten Algorithmus gegenüber klassischen deterministischen Formeln effizienter, allerdings können dabei auch falsche Ergebnisse entstehen, welche damit kompensiert werden müssen, indem mehrere Wiederholungen der jeweiligen Berechnung vorgenommen werden. Da dies sehr anspruchsvoll ist und ab dem ersten Sekundärstrahl pro Pixel eine Vielzahl solcher Berechnungen vorgenommen werden müssen (achten Sie dabei einmal auf die Tabelle mit den Renderzeiten) - es müssen also eine Vielzahl Rays pro Pixel verschossen und verfolgt werden -, um ein stimmiges Gesamtbild zu schaffen, ist Pathtracing aktuell nur mit Kniffen in Echtzeit umzusetzen, etwa durch temporale Berechnungen über die Zeit und den Einsatz eines aggressiven Denoisers (Noise entsteht in Form von Rauschen indes allein schon wegen des Zufallsfaktors des Algorithmus). Pathtracing funktioniert im Gegensatz zu Raytracing auch nicht mit Punktlichtquellen, da diese einen unendlich kleinen, virtuellen Punkt im Raum beschreiben, sondern benötigt Volumetric Lights, deren Licht ein Strahl auch aufnehmen kann, wenn er durch diese hindruch dringt (Volumetric Light wird wie ein transparentes Objekt behandelt) und nicht wie beim Raytracing genau dorthin geleitet wird.
Falls Sie's noch genauer wissen möchten, legen wir Ihnen das passende Video von der Game Technology Conference ans Herz. Entwickler von Nvidia erläutern hier die Herausforderungen und Lösungen, um einen Echtzeit-Pathtracer in Minecraft zu implementieren. Besonders interessant sind hier die Äußerungen und Kompromisse zur Performance, darunter die Tatsache, dass der Tracer die Rekursion nach dem ersten Sekundärstrahl beendet. Weitere Informationen ergeben sich temporal, das heißt über Zeit - mehrere Frames.
Diese temporalen Berechnungen lassen sich in Minecraft auch sehr gut beobachten, insbesondere bei der Beleuchtung und Verschattung. Da da diese über mehrere Frames berechnet wird, dauert es ein wenig, bis das Bild nach der Bewegung der Maus die korrekte Beleuchtung angenommen hat, obendrein lassen sich besonders in dunkleren Gebieten und bei großen Flächen wie Wänden durch die Globale Beleuchtung vorgenommene Berechnungen Live in Action erleben. Wenn Sie bei Mausbewegung an den Rand des Bildes blicken, sehen Sie dort, wo bislang keine temporalen Daten vorlagen (die Elemente, die also zuvor außerhalb des Bildes lagen), wie der Renderer Daten ergänzt, was anhand waberndem Licht und - besonders deutlich - Schatten zu beobachten ist. Der De-Noiser macht gute Arbeit und kaschiert vieles davon, doch sichtbar ist der Effekt auch, wenn man nicht genau hinsieht, dann wirkt es ein wenig, als würden die Schatten ghosten bzw. verwischen. Der Umstand ist umso deutlicher, je rauer die Oberfläche ausfällt, da bei diesen im Gegensatz zu stark spiegelnden Oberflächen mehr Rays benötigt werden, um deren Streuung auf rauen Materialien realitätsnah zu berechnen.
Neben Bewegungen lässt sich der temporale Aspekt der Pathtracing-Grafik auch bei dynamischen Objekten beobachten. Nehmen Sie beispielsweise eine Fackel auf, so bleibt deren Schein noch für einige Frames erhalten, auch der Schatten des nun nicht mehr in der Spielewelt vorhandenen Objekts bleibt für einen sichtbar, wird mit jedem zusätzlichen Frame Stück für Stück undeutlicher, bis er schlussendlich verschwunden ist - es ist schon ein wenig faszinierend, wenn man der Technik auf eine solche Art und Weise bei der Arbeit zusehen kann.
Minecraft RTX: DLSS 2.0 erneut überzeugend
Allen Tricks zum Trotz ist Pathtracing eine rechenaufwendige Angelegenheit, bei der jedes hinzukommende Pixel den Grafikprozessor belastet. Nvidia hat daher bereits bei der Turing-Vorstellung im Spätsommer 2018 eine Möglichkeit präsentiert, um die Last bei gleichwertiger (nicht identischer) Qualität deutlich zu senken: das Bildglättungsverfahren Deep-Learning Super-Sampling. Dieses wurde just auf Version 2.0 aktualisiert und zeigt in ersten Spielen beeindruckende Ergebnisse. Allen DLSS-Modi gemein ist, dass sie intern die Render-Auflösung reduzieren und stattdessen auf clevere Art und Weise Details rekonstruieren. Wie das genau funktioniert, entnehmen Sie den verlinkten PCGH-Artikeln. Ergänzend dazu empfehlen wir Ihnen diese Lektüre: So nutzen Sie DLSS mit DSR-Supersampling für fantastische Bildqualität.
Minecraft RTX bietet ebenfalls DLSS 2.0, um die Pathtracing-geplagte GPU zu entlasten. Im spieleigenen Grafikmenü steckt das Verfahren unverblümt hinter der Option "Upscaling". Eine Information, um welchen der drei DLSS-Modi (Quality, Balanced, Performance) es sich handelt, gibt das Spiel genauso wenig wie die Wahlmöglichkeit. Welcher Modus wo zum Einsatz kommt, erklärt Nvidia: "At 1920x1080, DLSS is automatically set to 'Quality' mode. At 2560x1440, 'Balanced', and at 4K, 'Performance'". Je höher die eingestellte Auflösung, desto stärker reduziert DLSS die interne Pixelmenge.
Quelle: PC Games Hardware
DLSS abschalten: "Upscaling" nach links
Dass DLSS 2.0 wenig mit den Entgleisungen früherer DLSS-1.x-Iterationen gemein hat, bewies das Verfahren bereits in Control und Mechwarrior 5. In Minecraft RTX zeigt sich DLSS 2.0 erneut von seiner Schokoladenseite: Diverse Kanten und Strukturen sehen mit der KI-gestützten und von den Turing-Tensorkernen berechneten Bildglättung besser aus als bei nativer Wiedergabe. Das ist angesichts der geringen internen Auflösungen bemerkenswert: 1.920 × 1.080 führt intern zu 1.280 × 720 Pixel (Q-DLSS), 2.560 × 1.440 zu 1.484 × 835 Pixel (B-DLSS) und 3.840 × 2.160 zu 1.920 × 1.080 Pixel (P-DLSS). Da die Leistung obendrein deutlich gesteigert wird, steht der praktische Nutzen und die Sinnhaftigkeit von DLSS zu keiner Zeit in Frage. Bemerkenswert: Die native Wiedergabe wird als "Fallback" bezeichnet, Nvidia und Microsoft sehen DLSS folglich als den Modus der Wahl an - unterstrichen von der Tatsache, dass DLSS nach Spielstart stets neben Raytracing aktiv ist. DLSS ohne Raytracing funktioniert unterdessen nicht. Leistungswerte von DLSS gegenüber nativer Darstellung finden Sie weiter unten.

2.Disassemblieren und den Teil der Bearbeitung durch die Tensor Cores überspringen.
3.Vielleicht kann man das auch über nsight entsprechend zerpflücken
4.Direkte Speichermanipulation/Tracing
....muss mir heute mal Gedanken dazu machen und ein wenig rumspielen.
LG
Zero
Alles gut, lass Dich nicht ärgern. Man sieht ja allein schon an der Schreibweise, wer hier vernünftig diskutieren will und wer nicht. Im großen und ganzen hast Du das System richtig erfasst, wobei das DL in DLSS schon gehörig dafür sorgt das Bild ruhigzustellen.
Im Namen der Wissenschaft hab ich mir überlegt das Bild eines Framebuffers nach Jitter&co jedoch vor der Bearbeitung durch die Tensor- Cores zu extrahieren (müsst ich mal sehen, wie das timing- technisch oder per breakpoint geht und ob die mir zur Verfügung stehenden Tools die Trennung weit genug durchführen können).
Dann haben wir einen direkten Vorher- Nachher- Vergleich und der Anteil der Tensor Core- Berechnung wird ersichtlich. Interessiert mich ja selber.
Konstruktiv bleiben, dann machts auch spaß.
LG
Zero
Bei DLSS < 2.0 war es scheinbar noch anders.
Aus Entwicklersicht nimmt sich das NGX SDK die ganzen TXAA-Samples, die Jitter Offsets, die Motion Vektoren, den Depht Buffer und ,,macht die Samples schön". Mit den Samples, die man ohne zusätzliches AA bereits als die Pixelfarben bezeichnen könnte, hat DLSS bereits genügend Informationen für die volle Auflösung und muss nichts mehr upscalen. Wenn, dann könnte man es eher als ein Denoising verstehen, doch es verringert nicht nur Noise.