Special DLSS 5 im Detail: Drei KI-Modellen auf einer Geforce-Grafikkarte

Das ist nun wirklich nur Dummenfang, das man im Schatten per "lichtverbesserung" die Details zurückholt.
Deswegen ja die Forderung nach guter/normaler Beleuchtung für Bild-Vergleiche.

zum Bsp. die Scans zu UE5 gefallen mir auch ohne DLSS5 Lichtverbesserungs-Tricksereien
 

Anhänge

  • Venice_5_7-Win64-Shipping_2025.12.25-16.35.jpg
    Venice_5_7-Win64-Shipping_2025.12.25-16.35.jpg
    973,9 KB · Aufrufe: 5
Das ist nun wirklich nur Dummenfang, das man im Schatten Details zurückholt.
Deswegen ja die Forderung nach guter/normaler Beleuchtung.

Bsp. sind die Scans zu UE5
Okay, das darfst Du gerne so sehen. Es wird dir frei stehen, DLSS 5 nicht zu nutzen und darauf zu warten, bis die GPUs genug Rohleistung haben, um physikalisch korrektere Grafik in Echtzeit zu berechnen.

Allerdings vermute ich stark, dass das nie passieren wird. Echtzeit-Computergrafik wird vollständig auf Neuronales Rendern umschwenken und "gute/normale Beleuchtung" (also Pathtracing?) wird irgendwo tief unten als Grundlage für das NR in der Renderpipeline verschwinden oder ganz weg fallen.
 
Also ich sag mal so...wenn DLSS 5 kommt und die Grafik in unterstützten Spielen für meinen Geschmack verbessert wird, spricht doch nichts dagegen!
Solange man zwischen an/aus oder wie auch immer wählen kann, begrüße ich es.

Und wenn es dann noch entsprechend optimiert ist, dass es zumindest erstmal auf jeder 5000er Karte läuft - perfekt.

Schade nur, dass es wieder Nvidia ist, die ein "neues Feature" für ihre Karten herausbringen.
 
zum Bsp. die Scans zu UE5 gefallen mir auch ohne DLSS5 Lichtverbesserungs-Tricksereien
Ja, mir auch! Aber ich sehe auf den ersten Blick etliche Fehler in der zu groben Schattendarstellungen und die Schatten in den feinen Strukturen (Selbstverschattung) sind vermutlich nicht dynamisch.
Außerdem müsste man ein DLSS 5 Bild daneben legen, um praktisch auf dem Silberteller präsentiert zu bekommen, was an dieser Szene physikalisch sonst noch alles nicht stimmt. Z.b. scheinen mir sämtliche Farbwerte nicht ganz passend zu sein.
Ich muss ja nicht genau aufschlüsseln können, was nicht passt, um als physikalisches Wesen einen Wow-Effekt zu haben, wenn das Ganze dann noch mal einen grafischen Sprung macht.
 
Im Grunde kann man sagen, dass DLSS 5 einen Paradigmenwechsel darstellt. Es ist nun möglich, mit viel weniger Aufwand Photorealismus zu erreichen als mit aufwendiger manueller Berechnung mit Pathtracing etc. Ich denke, darauf wird es über kurz oder lang hinauslaufen. Pathtracing wird da aber wahrscheinlich als Basis für die Ground Truth noch im Hintergrund irgendwo notwendig sein, aber das Rendern des Spiels wird dann größtenteils auf DLSS 5 Neural Rendering hinauslaufen. So meine gewagte These, die ich aber wahrscheinlich halte. Die großen Performance-Sprünge bei Raster sind mausetot. Raster ist mausetot. Pathtracing hat noch Reserven, aber wir haben ja jetzt quasi die Abkürzung gefunden. Interessante Entwicklung. :)
 
Ja, mir auch! Aber ich sehe auf den ersten Blick etliche Fehler in der zu groben Schattendarstellungen und die Schatten in den feinen Strukturen (Selbstverschattung) ist vermutlich nicht dynamisch.
Meinst Du jetzt die linke Seite, die Schatten liegt?
Die hat natürlich kein /wenig AO.

Ich hatte beim Schnappschuss evtl. auch nicht UltraSchatten an, müsste ich mal nachschauen.
Meistens spiel ich mit meiner kleinen Graka nur High.
 
Meinst Du jetzt die linke Seite, die Schatten liegt?
Die hat natürlich kein /wenig AO.
Nein, ich meine z.B. den fetten Blumenkübel mit diesen sternförmigen Blumen. Da werfen nur die Stile so halb einen Schatten. Die Kronen hingegen gar nicht. Ähnlich sieht das bei den Schatten der Stuhllehnen oder dieses Metallzaunes aus. Die sind teils unterbrochen, zu pixelig oder fangen irgendwo im Nichts an. Manche Dinge werfen auch einfach gar keinen Schatten, wie die Bettlaken links. Und die Laterne an der linken Hauswand erzeugt keine Umgebungsverdeckung. Die sieht aus wie ein Fremdkörper.

Diese Liste könnte man endlos fortsetzen.

Man könnte jetzt einwenden, dass man das im Spiel ja gar nicht sieht. Da würde ich widersprechen. Ich sehe in solchen Fällen nach und nach immer mehr Fehler und kann sie dann nicht mehr ungesehen machen. Schlecht für die Immersion.

Dazu kommen eben die Farbwerte, die irgendwie off wirken.
 
Diese Diskussion wird nie enden. Sie erinnert an die Verteufelung von manchen neuen Erungenschafen, z.B. der Eisenbahn im 19. Jahrhundert, oder an die Ablehnung der CD in den 80er Jahren bzw. der Digitalisierung der Musik generell (in gewissen Kreisen soll ja 'Analog' noch heute das Ein und Alles sein im Hifi Bereich). Ist doch klar, dass die neuen Techniken (DLSS, Neural Rendering usw.) sich in naher Zukunft immer mehr verbessern werden, (fast) bis zur Perfektion (wie die Entwicklung der D/A Wandler in den letzen Jahrzehnten). Für die Freunde des mehr 'künstlerischen, menschlichen, kreativen, nativen, ursprünglichen usw.' Ausdrucks in der Spielegrafik wird es gewiss immer wieder neue Games geben, welche sich von der 'fotorealistischen Grafik' bewusst abgrenzen werden. Am Ende wird es wohl (auch) eine Frage des Geschmacks sein, aber auch irgendwie eine philosophische Frage, inwieweit man sich auf die neuen Techniken einlassen mag oder nicht.
 
Sehr gute Analogie.
Vielen Dank, stammt im Grunde aber nicht von mir. Es wird immer wieder mal kritisiert - auch von der Fachpresse, dass Nvidia unter anderem DLSS 5 eben in das DLSS Feature Set einordnet. Das Gleiche gilt für Framegen, usw.
Dabei ist das ja tatsächlich alles Upsampling (holistisches Upsampling), wenn man sich weit genug zurück lehnt (abstrahiert) und von Nvidia imho ganz richtig klassifiziert.

Ob man nun fehlende Pixel im Raum (SR), fehlende Frames in der Zeit (FG), fehlende Strahlen-Informationen beim Licht (RR) oder fehlende Materialdetails bei der Oberflächenphysik von Licht (DLSS 5) auffüllt - in jedem Fall wird "upgesampelt".
 
Ob man nun fehlende Pixel im Raum (SR), fehlende Frames in der Zeit (FG), fehlende Strahlen-Informationen beim Licht (RR) oder fehlende Materialdetails bei der Oberflächenphysik von Licht (DLSS 5) auffüllt - in jedem Fall wird "upgesampelt".
Ja, seh ich ganz ähnlich. Die Kritik am Namen war im Grunde unberechtigt. Spätestens seit Frame Generation rein über ein KI-Modell läuft und der OFA Geschichte ist, macht das Ganze noch mehr Sinn.
Es grenzt sich auch stark vom "Erfinden" von Inhalten ab.

Unterm Strich sparst du dir die teure Berechnung und die KI macht aus wenig Input eben den maximalen Output. Das Prinzip wird sich auch in Zukunft noch beschleunigen, wenn (und jetzt spekuliere ich) neural rendering dem "KI-Upscaling" unter die Arme greift, indem es in niedrigen Auflösungen mit fortschrittlicher radiance demodulation mithilefe der Engine die mathematische Komponenten noch deutlich sauberer voneinander abtrennt.

Wir können mit noch krasser abgesenkten Grundauflösungen arbeiten, ohne dass das Bild im Pixelmatsch kollabiert. Und am Schluss der ganzen Entwicklung steht das "Ende" von Auflösungen und der Beginn der reinen Vektordaten bzw. Geometrie die an die KI geliefert werden. Die Ausgabeauflösung wäre dann beliebig.

Anderes Thema, erinnert du dich noch an Vektormonitore? Naja, am Ende wird zur Übertragung des Signals auf den Monitor wahrscheinlich noch lange Zeit ein Pixelraster von Nöten sein.
 
Zuletzt bearbeitet:
Das ist technisch sowas von falsch. Wow. Path Tracing ist kein "Marketingbegriff für mehr Strahlen", sondern ein fundamental anderer Rendering-Algorithmus.

Klassisches Raytracing in Spielen arbeitet fast immer hybrid: Das Bild wird weiterhin per Rasterization berechnet, Raytracing kommt nur punktuell für einzelne Effekte dazu – etwa Spiegelungen, Schatten oder Ambient Occlusion. Diese Effekte laufen separat und werden am Ende wie Photoshop-Ebenen über das Rasterization-Bild gelegt.

Path Tracing wirft die Rasterization dagegen komplett über Bord: Das gesamte Bild wird ausschließlich durch Lichtstrahlen berechnet, die von der Kamera aus über mehrere Bounces durch die Szene wandern. Aus Tausenden solcher Pfade pro Pixel entstehen automatisch korrekte indirekte Beleuchtung, Spiegelungen, weiche Schatten und Farbübertragung – alles aus einem einzigen, einheitlichen Algorithmus.

Die Unterscheidung ist so nicht ganz korrekt. Raytracing bezeichnet grundsätzlich die Verfolgung von Strahlen durch eine Szene. Von der Kamera aus werden Strahlen ausgesendet, die bei Treffern weitere Strahlen für diffuse oder spiegelnde Reflexionen sowie für Refraktion erzeugen können. Dadurch entsteht pro Primärstrahl ein Baum aus weiteren Strahlen. An jedem Knoten dieses Baums muss ein Integral über die möglichen einfallenden Lichtbeiträge gelöst werden, was beispielsweise durch Sampling oder Monte-Carlo-Verfahren angenähert werden kann.

Pathtracing ist eine spezielle Form des Raytracings. Statt den gesamten Strahlenbaum auszuwerten, wird mithilfe eines Monte-Carlo-Verfahrens jeweils nur ein zufällig ausgewählter Pfad verfolgt. Daher stammt auch der Name Pathtracing. Über viele Samples wird damit das Integral der BRDF angenähert.

Die meisten Raytracer und Pathtracer in Echtzeitanwendungen sind hybride Renderer. Dabei wird die primäre Sichtbarkeit häufig weiterhin effizient durch Rasterisierung bestimmt. Raytracing oder Pathtracing wird anschliessend auf die sichtbaren Fragmente angewendet, um beispielsweise Reflexionen, Refraktion, Schatten oder indirekte Beleuchtung zu berechnen. Bei einem vollständig raybasierten Pathtracer werden dagegen auch die Primärstrahlen direkt von der Kamera aus verfolgt.
 
Die Unterscheidung ist so nicht ganz korrekt. Raytracing bezeichnet grundsätzlich die Verfolgung von Strahlen durch eine Szene. Von der Kamera aus werden Strahlen ausgesendet, die bei Treffern weitere Strahlen für diffuse oder spiegelnde Reflexionen sowie für Refraktion erzeugen können. Dadurch entsteht pro Primärstrahl ein Baum aus weiteren Strahlen. An jedem Knoten dieses Baums muss ein Integral über die möglichen einfallenden Lichtbeiträge gelöst werden, was beispielsweise durch Sampling oder Monte-Carlo-Verfahren angenähert werden kann.

Pathtracing ist eine spezielle Form des Raytracings. Statt den gesamten Strahlenbaum auszuwerten, wird mithilfe eines Monte-Carlo-Verfahrens jeweils nur ein zufällig ausgewählter Pfad verfolgt. Daher stammt auch der Name Pathtracing. Über viele Samples wird damit das Integral der BRDF angenähert.

Klar, im Lehrbuch steht Pathtracing unter dem Raytracing-Dach. Aber für die Praxis, also für Echtzeit-Engines, ist diese Einordnung ziemlich irrelevant. Whitted-Style-Raytracing und Pathtracing sind algorithmisch zwei komplett unterschiedliche Ansätze: Der eine folgt einem deterministischen Strahlenbaum mit festen Pfaden, festen Regeln und einzelnen Effekten. Der andere schießt zig Strahlen pro Pixel zufällig in alle Richtungen und nähert das Integral per Monte Carlo an. Das ist kein „Spezialfall", das ist ein anderer Ansatz.

Die meisten Raytracer und Pathtracer in Echtzeitanwendungen sind hybride Renderer. Dabei wird die primäre Sichtbarkeit häufig weiterhin effizient durch Rasterisierung bestimmt. Raytracing oder Pathtracing wird anschliessend auf die sichtbaren Fragmente angewendet, um beispielsweise Reflexionen, Refraktion, Schatten oder indirekte Beleuchtung zu berechnen. Bei einem vollständig raybasierten Pathtracer werden dagegen auch die Primärstrahlen direkt von der Kamera aus verfolgt.

Als ich gesagt habe, Pathtracing „wirft die Rasterisierung komplett über Bord", hatte ich die Zorah-Demo im Kopf. Die läuft tatsächlich komplett ohne Raster, nur über Primärstrahlen und Mega Geometry. Ich habe das dann aber pauschal auf alle Pathtracing-Titel übertragen, und das war nicht korrekt. Cyberpunk Overdrive, Alan Wake 2, die laufen alle mit Rasterbasis für die primäre Sichtbarkeit. Mein Fehler. :)

Aber der Kern bleibt: Wenn jemand behauptet, Pathtracing sei „nur ein Werbebegriff für mehr Strahlen", dann ist das einfach falsch.

Beim klassischen Whitted-Style-Raytracing folgt jeder Strahl einem festen, vorhersehbaren Pfad: Reflexion hier, Brechung da, Schatten obendrauf, alles in getrennten Passes. Pathtracing schießt dagegen zig Strahlen pro Pixel zufällig in alle Richtungen, und aus dem Rauschen rekonstruiert die Engine per Monte Carlo den kompletten Lichttransport. Das ist ein fundamental anderer Algorithmus, nicht nur „mehr Strahlen". ^^
 
Ist halt davon abhängig aus welchem Blickwinkel man es betrachtet. Aus Sicht des Spielers, der Engine oder noch besser - dem ursprünglichen Kontext angenähert - der Beleuchtungspipeline in Spiel ABZ, ist der praktische Unterschied in der Implementierung fundamental. Die Spiele werden nicht ohne Grund als Pathtracing-Games bezeichnet. Man könnte es auch weiterhin als hybrides Pathtracing benamsen.
Aber der Kern bleibt: Wenn jemand behauptet, Pathtracing sei „nur ein Werbebegriff für mehr Strahlen", dann ist das einfach falsch.
Sicher, diesen Kern wollte dudellino auch nicht in Frage stellen.
 
Klar, im Lehrbuch steht Pathtracing unter dem Raytracing-Dach. Aber für die Praxis, also für Echtzeit-Engines, ist diese Einordnung ziemlich irrelevant. Whitted-Style-Raytracing und Pathtracing sind algorithmisch zwei komplett unterschiedliche Ansätze: Der eine folgt einem deterministischen Strahlenbaum mit festen Pfaden, festen Regeln und einzelnen Effekten. Der andere schießt zig Strahlen pro Pixel zufällig in alle Richtungen und nähert das Integral per Monte Carlo an. Das ist kein „Spezialfall", das ist ein anderer Ansatz.

Da widerspreche ich dir. Ich habe selbst einen deterministischen Raytracer, einen Monte Carlo Raytracer und einen Pathtracer implementiert. Die grundlegende Raytracing Struktur ist bei allen gleich. Strahlen werden verfolgt, mit Geometrie geschnitten und an Oberflächen ausgewertet.

Whitted Style Raytracing verfolgt Sekundärstrahlen typischerweise nur für perfekte Reflexion und Brechung. Diffuse Beleuchtung bleibt lokal. Ein deterministischer Raytracer mit diffuser Reflexion verfolgt zusätzlich diffuse Sekundärstrahlen nach einem festen Abtastungsmuster. Monte Carlo Raytracing und Pathtracing wählen diese Richtungen dagegen stochastisch.

Der zentrale Unterschied liegt damit im Integrator und im Sampling, nicht darin, dass Pathtracing ein völlig anderer Ansatz wäre. Auch die Rekursion ist kein grundlegendes Merkmal. Ein Pathtracer lässt sich sehr natürlich als Schleife über die Bounces implementieren, was auf GPUs oft günstiger ist.

Auf der CPU kann ein gezielterer Monte Carlo Integrator je nach Sampling weniger Varianz erzeugen und dadurch schneller konvergieren als ein Pathtracer, der auch Pfade ohne relevanten Beitrag verfolgt. Pathtracing ist deshalb kein grundsätzlich anderer Ansatz, sondern eine Monte Carlo Methode innerhalb des Raytracings.
 
dudellino schrieb:
Da widerspreche ich dir. Ich habe selbst einen deterministischen Raytracer, einen Monte Carlo Raytracer und einen Pathtracer implementiert. Die grundlegende Raytracing Struktur ist bei allen gleich. Strahlen werden verfolgt, mit Geometrie geschnitten und an Oberflächen ausgewertet.
Dass du alle drei selbst implementiert hast, respektiere ich, da hast du mir was voraus. ^^ Und klar, das Skelett ist überall dasselbe: Strahl raus, Schnitttest, Shading am Treffpunkt. Das bestreitet ja auch keiner. Nur sagt der Schnitttest eben nichts darüber aus, was der Renderer am Ende tatsächlich an Licht transportiert.
dudellino schrieb:
Whitted Style Raytracing verfolgt Sekundärstrahlen typischerweise nur für perfekte Reflexion und Brechung. Diffuse Beleuchtung bleibt lokal.
Und genau da sitzt doch der Punkt: „Diffuse Beleuchtung bleibt lokal" heißt auf Deutsch, es gibt keine indirekte Beleuchtung und kein Color Bleeding. Egal wie viele Sekundärstrahlen du für perfekte Spiegelung und Brechung verschießt. Whitted-Style löst die Rendering-Gleichung schlicht nicht. Ein Pathtracer nähert das komplette Integral per Monte Carlo an, und daraus fallen all diese Effekte automatisch aus einem einzigen Solver raus.
dudellino schrieb:
Der zentrale Unterschied liegt damit im Integrator und im Sampling, nicht darin, dass Pathtracing ein völlig anderer Ansatz wäre. Auch die Rekursion ist kein grundlegendes Merkmal. Ein Pathtracer lässt sich sehr natürlich als Schleife über die Bounces implementieren, was auf GPUs oft günstiger ist.
Rekursion vs. Schleife ist Implementierungsdetail, da sind wir uns einig. Aber dass der Unterschied „nur" im Integrator liegt, macht ihn in der Praxis nicht kleiner, sondern größer. Der Integrator ist ja genau das, was das Bild am Ende ausmacht. Genau deshalb heißen die Spiele auch Pathtracing-Games: Das komplette Lighting kommt aus dem Monte Carlo Integrator, und das ist in der Engine-Pipeline ein Bruch mit der alten Welt aus getrennten RT-Effekt-Pässen für Spiegelung, Schatten und AO. Für Spieler und Engine ist das der relevante Unterschied, auch wenn der Schnitttest dahinter derselbe ist.
dudellino schrieb:
Auf der CPU kann ein gezielterer Monte Carlo Integrator je nach Sampling weniger Varianz erzeugen und dadurch schneller konvergieren als ein Pathtracer, der auch Pfade ohne relevanten Beitrag verfolgt.
Klar, bidirektionales Tracing oder Metropolis können konvergenztechnisch mehr rausholen. Lohnt sich aber erst über viele Samples. In Echtzeit hast du grob ein Sample pro Pixel pro Frame, da fließt das Budget in Light Sampling (ReSTIR) und Denoising. Die eleganteren Integratoren bleiben praktisch dem Offline-Rendering vorbehalten, wo du die Samplezahlen dafür überhaupt hast.
Ob man das Ganze am Ende „Spezialfall" oder „anderer Ansatz" nennt, ist Semantik. In der Praxis sieht den Unterschied jeder, der zum ersten Mal ein Pathtracing-Game startet. :)
 
Richtig, Raytracing hat zum allerersten mal Reflexionen ermöglicht, die nicht aus dem Bild gewischt werden müssen und von Artefakten geplagt sind, sobald sich die Kamera bewegt oder ein Objekt aus dem Sichtfeld verschwindet, ein Meilenstein.

Für jemanden, der anderen täglich Beleidigungen an den Kopf schmeißt, ist dein Wissen über 3D-Rendering jenseits der Nvidia-PR-Bubble erstaunlich beschränkt.
Zur Weiterbildung: Planar Reflections können Objekte außerhalb des Sichtfeld darstellen. Und Cube Maps prinzipiell auch, aber die nutzt man sowieso nicht, wenn einen solche Details interessieren. Beide Techniken gab es lange vor Raytraycing-Reflektionen in Spielen. Und auch vor den Screenspace Reflections, für die von dir beschriebene Artefakte typisch sind. Die Ärgernisse mit dieser bekanntermaßen billigsten, minderwertigsten Lösung überhaupt, kamen erst nachträglich in Spiele, weil sie so wenig Leistung kostet.

Planar Reflexions sind im Gegenzug zwar hinsichtlich den Eigenschaften der reflektierenden Oberfläche eingeschränkt. Paradoxerweise nutzen die meisten Spiele Raytraycing-Reflexionen bis heute aber nur in einer Qualität respektive an Positionen, für die Planars perfekt geeignet wären. Bestes Beispiel sind weiterhin die Bodenreflexionen in Alien: Isolation, die sich (wenn man die Qualität auf max dreht) vor Cyberpunk & Co kein bisschen zu verstecken brauchen, aber mit einem Bruchteil an Hardware-Leistung auskommen.

So funktionieren halt alle gängigen Engines und wenn man die weiter verwenden will, dann muss man sich irgendwie in die vorhandene Architektur einfügen.

Ich hatte ganz zu Anfang die naive Vorstellung, dass man in Zukunft quasi eine KI-Engine hat, die die herkömmlichen Grafik-Engines komplett ersetzt. Der sagt man dann nur noch, "da" "steht" ein "Stuhl", und "dort" "läuft" eine "Person" von "A" nach "B".

Klingt im ersten Moment toll, nur hätte man dann eine komplett eigene Engine, die nur auf kompatibler Hardware läuft. Und wie ein Stuhl konkret aussieht ("Creators Intent"), und dass das überhaupt ein Stuhl ist, wäre damit immer noch nicht geklärt. So wie ich das verstehe, ist ein Stuhl ein Asset für die Engine, in der Geometrie und Oberflächen mittels eines gerüttelt Maß an Polygonen (5-stellig!) und Texturen definiert wird. Das sind also ziemlich viele Daten pro Asset, und blöderweise steht da trotzdem nirgends inhaltlich verwertbar drin, dass das ein "Stuhl" aus "Buchenholz" ist, sondern das ergibt sich für den Betrachter aus den gerenderten Daten des Assets.

Damit das also "ohne Umweg" funktioniert wie von Dir vorgeschlagen, bräuchte man auch komplett neue bzw. überarbeitete Assets.

Daher erscheint mir der angebliche "Umweg" über das gerenderte Bild ziemlich sinnvoll und pragmatisch. Man könnte sagen, das gerenderte Bild enthält für das betrachtende Modell alle notwendigen Informationen, und das bereits komprimiert.

Moderne 3D-APIs arbeiten objektorientiert. Die Engine übergibt die Szene nicht Polygon für Polygon, sondern verwaltet die Polygongruppe, welche den Stuhl repräsentiert als ein Asset. Das geht soweit, dass ein zweiter Stuhl copy & paste auf der Grafikkarte erstellt werden kann, in dem man das gleiche Objekt mit einer neuen Koordinate und Ausrichtung ein zweites Mal rendern lässt, ohne es noch einmal übertragen zu müssen. Genauso werden Oberflächen seit der Einführung von physcial based rendering nicht mehr einzeln vom Texturdesigner gestaltet. Es gibt ein Layer (oder heutzutage eher Shader), der für "Metall" steht, einen für Holz, die Holzmaserung kann seit komplett auf der GPU erstellt werden, wenn gewünscht, und so weiter. Das heißt an dem Stuhl klebt vielleicht nicht das Label "Stuhl", dass man direkt in einen Bildgenerator werfen kann. Der Entwickler kann das Asset auch "StrikeMan5000" genannt haben. Aber jedes Mal, wenn der Stuhl gezeigt werden soll, wird dieses Asset geladen und die KI müsste nur einmal die Polygone analysieren und wüsste dann, um was es sich handelt – was sie ohnehin muss, schließlich können in Spielen auch komplett neue Objekte auftauchen, deren Umriss nicht im Trainingsmaterial war.

Die Formulierung, dass das Render-Bild eine komprimierte Version der gewünschten Ausgabe ist, stimmt aber. Der Fehler liegt halt genau darin: Komprimieren sollte man vor einer Einlagerung, nicht vor der Ausgabe. Da muss man dekomprimieren. Alles andere ist ein Umweg oder bestenfalls ein Zwischenschritt, der Lag und Fehlerquellen mit sich bringt.

Genau, und weil DLSS 5 Zugriff auf diese Daten hat Vektoren/Masken/Albedos hat ist es kein Filter und der Buchenholztisch wird genauso wenig mit der Birkenholzstuhllehne verschmelzen wie zwei völlig separate Objekt IDs in einer professionellen 3D Engine wie Unreal. Für den Algorithmus sind Tisch und Stuhl glasklar getrennte Instanzen.

Die Masken und Vektoren sind meinem Wissen nach, passend zur Arbeitsweise mit dem fertigen Bild, pixel- und nicht objektbezogen. Das heißt für jeden einzelnen Frame muss der Renderer zusätzlich eine Vektormap berechnen, welche die 2D-Bewegung von Bildelementen in für DLSS verständlicher Form wiedergibt, obwohl die zugrundeliegenden 3D-Bewegungen der Objekte in der Szene lange vorher und in viel präziserer Form vorliegen.

Was glaubst du eigentlich wie 2D zu 3D Konvertierungen im Jahr 2010 funktioniert haben? Das war händische Sklavenarbeit, ein Servercluster hat das nicht mit KI"berechnet", der hat nur die händisch freigestellten Ebenen gerendert. (Rotoskoping) :klatsch:

Das waren die besseren. Die schlechten haben aufeinanderfolgende Frames algorithmisch auf Paralaxen hin abgesucht, mit in der Regel grauenhaftem Ergebnis. Rotoskopie ist übrigens das genaue Gegenteil: Man bewegt einzelne Bildelemente tatsächlich dreidimensional, um die resultierenden Paralaxen korrekt in einem 2D-Bild wiederzugeben. Zum Beispiel die alten Disney-Filme waren Meisterwerke dieser Technik und haben teils ein dutzend Hintergrundebene physisch gegeneinander bewegt, um mit den immer gleichen gezeichneten Bildern ganze Sequenzen von hunderten Frames auf Film zu bannen.

Pathtracing ist nur ein Werbebegriff für Raytracing mit ner halbwegs anständigen Anzahl an Strahlen und Bounces. In Hogwarts Legacy konnte man z.B. vor dem Update mit solchen Optionen im Menü bereits über die ini Datei mit diesem Parametern effektiv einen Pathtracing Mod erstellen.

Jein: "Pathtracing" gemäß Nvidia-PR-Sprech ist ein Rendering des gesamten Bilds mittels Raytracing, während ein sogenanntes "Raytracing"-Bild gemäß Nvidia-PR-Sprech auch zu 99 Prozent aus Rasterizing bestehen kann. Man braucht also mehr Rays für sogenanntes "Pathtracing", aber das ist nicht der einzige Unterschied. Zusätzlich muss man auch die Anwendung auf das ganze Bild festlegen. Nur 10 mal mehr Strahlen auf den "RT"-Teil zu feuern würde nicht reichen, man muss ja auch den Rest sehen können.

Außerhalb des PR-Sprechs beschrieb Pathtracing übrigens mal Raytracing, dass jede Strahlenkette von der Kamera bis zu einer Lichtquelle oder umgekehrt verfolgt. Meinem Wissen nach ist das bei "Pathtracing"-Spielen weiterhin nicht flächendeckend der Fall, aber durchaus für einen Teil der Reflektions-Einblendungen in "Raytracing"-Titeln.

Das ist faktisch für den Einsatz in Spielen einfach falsch. Alles Raytracing in Spielen basiert auf dem Pathtracing Algorithmus.
Alle Rasterverfahren über Board werfen wiederum haben wir afaik genau ein Mal in einem Spiel gesehen, das war Minecraft RTX. Was übrigens wiederum nur mit Raytracing statt Pathtracing beworben wurde. Heute wäre der Mode-Begriff dafür "Full Pathtracing".

Nein, da ist kein Rasterizing mehr im Spiel. Aber es gibt jede Menge andere (KI-)Tricks, um nicht jedes Pixel in jedem Frame mit allen in Frage kommenden Lichtquellen verbinden zu müssen. Letzteres müssten neben Minecraft auch noch Quake II RTX und Verwandte machen. Portal RTX geht auch sehr weit (in den Keller mit der Performance). Alle drei Beispiele integrieren aber zusätzlich noch temporal, verfolgen also nicht jeden Strahl in jedem Frame bis zu Ende für Echtzeitberechnung.

Jein, es gibt einige Quellen, die von einer Verbesserung der Beleuchtung, sowie der Materialen sprechen. Ich denke, so kennst du das auch?
Hier ist ein Quelle. Weitere lassen sich leicht googlen:

Meine Interpretation ist, dass die Überarbeitung der Materialien zwangsläufig aus der verbesserten Beleuchtung resultiert. Wenn ich eine Texture mit Oberflächenstruktur und Lichtbrechung korrekt ausleuchte, bzw. die Farbwerte, das Sub Surface Scattering, die Mikroverschattung (aufgrund der Struktur), usw. richtig "berechne", ändert sich zwangsläufig die Anmutung aller Materialien. Anders geht es nicht. Wenn man die Materialien nicht anfasst, hat man keine realistische Beleuchtung umgesetzt. Wer hier nur an Schatten, Umgebungsverdeckung und Ganzpunkte denkt, denkt viel zu kurz.

Im Umkehrschluss bedeutet das, dass die Texturen im Grunde unverändert bleiben. Sie reagieren nur korrekter auf das Licht. Eine Baumrinde wird nicht plötzlich borkiger oder höher Auslösend. Das wäre ein Maß an generativer Freiheit, dass Nvidia ganz bewusst nicht haben will (Artist intent, usw.)

Dieser Auffassung musst Du natürlich nicht folgen. Aber hoffentlich ist verständlich geworden, was ich ausdrücken wollte.

Was du hier beschreibst, ist die Intention dessen, was DLSS5 abbilden will (oder zumindest eine von mehreren), aber nicht die Methode. Diese feinen Effekte tatsächlich zu berechnen wäre z.B. mit Normal-Mapping und verdammt vielen Rays möglich. Sowas macht DLSS aber allgemein nicht, es hat ja nicht einmal Zugriff auf die nötigen Geometriedaten die Ausrichtung von Wand und Lichtquelle zueinander definieren.

Stattdessen wertet DLSS das fertige Bild aus und gleicht es mit dem KI-Wissen darüber ab, wie eine derartige Szene aussehen sollte, wenn sie mit allen Details gerendert worden wäre. Diese Details werden dann ergänzt. Übersimplifiziertes Beispiel: Wenn du den Umriss eine Autos renderst und die Räder vergisst, würde DLSS ein vollständiges Auto mit Rädern ausspucken. Aber es wäre ein KI-Bild eines solchen Autos, nicht ein Rendering des gewünschten Autos an der gewünschten Position. Daraus resultieren auch die typischen "Fehler" von DLSS, wenn zum Beispiel eine Person Instagram-like dargestellt wird, obwohl der Designer das gar nicht wollte. DLSS trifft eine falsche Annahme der Intention und setzt die um.

Dieses Dilemma ist übrigens nicht neu, sondern begleitet DLSS von Anfang an. Heute sind die Fehler in Mikrodetails zurückgedrängt, weswegen das Ergebnis nur "unnatürlich" wirkt. Aus den Anfangstagen kann ich mich zum Beispiel an Stadtpanoramen in Arkham Asylum erinnern, in denen schlechte Teile von Gotham City schlechter beleuchtet sein sollten. Aber DLSS1 hat einfach oben auf jeden Laternenmast einen grell weißen Blob draufgesetzt – "kaputte Laterne" kannte es noch nicht. Es ergänzte also ein "fehlendes" Detail, wo absichtlich etwas anderes gewünscht war.
 
Was du hier beschreibst, ist die Intention dessen, was DLSS5 abbilden will (oder zumindest eine von mehreren), aber nicht die Methode. Diese feinen Effekte tatsächlich zu berechnen wäre z.B. mit Normal-Mapping und verdammt vielen Rays möglich. Sowas macht DLSS aber allgemein nicht, es hat ja nicht einmal Zugriff auf die nötigen Geometriedaten die Ausrichtung von Wand und Lichtquelle zueinander definieren.

Stattdessen wertet DLSS das fertige Bild aus und gleicht es mit dem KI-Wissen darüber ab, wie eine derartige Szene aussehen sollte, wenn sie mit allen Details gerendert worden wäre. Diese Details werden dann ergänzt. Übersimplifiziertes Beispiel: Wenn du den Umriss eine Autos renderst und die Räder vergisst, würde DLSS ein vollständiges Auto mit Rädern ausspucken. Aber es wäre ein KI-Bild eines solchen Autos, nicht ein Rendering des gewünschten Autos an der gewünschten Position. Daraus resultieren auch die typischen "Fehler" von DLSS, wenn zum Beispiel eine Person Instagram-like dargestellt wird, obwohl der Designer das gar nicht wollte. DLSS trifft eine falsche Annahme der Intention und setzt die um.

Dieses Dilemma ist übrigens nicht neu, sondern begleitet DLSS von Anfang an. Heute sind die Fehler in Mikrodetails zurückgedrängt, weswegen das Ergebnis nur "unnatürlich" wirkt. Aus den Anfangstagen kann ich mich zum Beispiel an Stadtpanoramen in Arkham Asylum erinnern, in denen schlechte Teile von Gotham City schlechter beleuchtet sein sollten. Aber DLSS1 hat einfach oben auf jeden Laternenmast einen grell weißen Blob draufgesetzt – "kaputte Laterne" kannte es noch nicht. Es ergänzte also ein "fehlendes" Detail, wo absichtlich etwas anderes gewünscht war.
Dein Beispiel mit dem Auto halte ich für nicht haltbar. Da DLSS 5 mit dem arbeiten soll, was da ist, kann es keine Räder hinzufügen. Das wäre verdammt weit weg von der immer wieder beschworenen Verankerung an Ground Truth. Das unvollständige Auto wird für immer unvollständig bleiben, dabei aber super aussehen! DLSS 5 soll nur optimieren, was da ist und keine neuen Details hinzufügen oder entfernen. In der SIGGRAPH Präsentation gab es dazu das Beispiel mit der Narbe im Gesicht. Ist von @Promethea bereits angesprochen worden. DLSS 5 ist ein rekonstruierendes und interpretierendes System, kein generatives System wie Midjourney.
Also genau das, was du beschreibst, wird mit DLSS 5 höchstwahrscheinlich niemals passieren. Das ist ein Thema für DLSS 6+.

Ich hatte "berechnen" extra in Anführungszeichen gesetzt, um deutlich zu machen, das der Begriff hinkt, ich aber den ganz langen Umweg nicht gehen will.

Dass die KI den Farbwert eines Pixels nicht wirklich berechnen kann, sondern aus ihrem neuronalem Netz ableitet, dürfte den meisten hier klar sein. Das ist ja gerade der Sinn der Sache. Wenn eine tatsächliche Berechnung stattfinden würde, wären wir wieder bei Pathtracing und der Performance-Vorteil wäre dahin.

Nvidia scheint davon überzeugt zu sein, dass Normal Maps, Motion Vectors, Albedo-Puffer, Z-Buffers und Bildklassifizierung ausreichen, um jedes Detail im Bild semantisch und räumlich zu erfassen. Mehr Engine Daten, die aktuell nicht bereitstehen, würden einen höheren, integrativen Aufwand auf Seiten der Spieleentwickler bedeuten, sowie zwangsläufig auch eine höhere Rechenlast. Die Adaptionsrate würde abfallen. So wie das jetzt umgesetzt wurde, kann Nvidia einfach nutzen, was eh schon da ist. Eine tiefe Engine-Integration, oder gar eine Erweiterung der Grafik-API ist offenbar nicht erforderlich.
Außerdem fährt Nvidia meines Wissens zweigleisig. Während jetzt die Technologie möglichst leichtgängig in den Markt gedrückt wird, arbeitet Nvidia mit Microsoft an einer Erweiterung von DirectX, um Neuronales Rendern voran zu treiben.

Wir werden schon bald selbst beurteilen können, ob wir eine neue DLSS 1 Situation bekommen. Ich bin da allerdings Optimist.
 
PCGH_Torsten schrieb:
Für jemanden, der anderen täglich Beleidigungen an den Kopf schmeißt, ist dein Wissen über 3D-Rendering jenseits der Nvidia-PR-Bubble erstaunlich beschränkt.


Zur Weiterbildung: Planar Reflections können Objekte außerhalb des Sichtfeld darstellen. Und Cube Maps prinzipiell auch [...] Paradoxerweise nutzen die meisten Spiele Raytraycing-Reflexionen bis heute aber nur in einer Qualität respektive an Positionen, für die Planars perfekt geeignet wären. Bestes Beispiel sind weiterhin die Bodenreflexionen in Alien: Isolation [...]


Planars skalieren aber nicht. Eine Ebene geht, zwei gehen noch. Bei zehn reflektierenden Oberflächen in einem Raum renderst du die Szene pro Ebene nochmal, dann wird es absurd teuer. Und wehe, die Oberfläche ist gebogen oder rau. Genau deshalb ist RT am Ende der allgemeinere und inzwischen vor allem ökonomischere und sinnvollere Ansatz.


PCGH_Torsten schrieb:
Moderne 3D-APIs arbeiten objektorientiert. [...] Aber jedes Mal, wenn der Stuhl gezeigt werden soll, wird dieses Asset geladen und die KI müsste nur einmal die Polygone analysieren und wüsste dann, um was es sich handelt – was sie ohnehin muss [...]


Dass die KI verstehen muss, was im Bild ist, hast du richtig erkannt. Nur braucht sie dafür keine Polygonanalyse und auch kein Label am Asset. Das Modell, das Nvidia da verwendet, erkennt visuell selbst, was es sieht: Charakter, Umgebung, Props, Foliage. In der Präsentation maskiert es den Charakter im Frame eigenständig (Automasking), ohne dass der Entwickler irgendwas markieren muss. Der "Stuhl" wird also sehr wohl erkannt, nur eben direkt aus dem Bild plus Buffern statt aus der Asset-Datenbank.


PCGH_Torsten schrieb:
Die Masken und Vektoren sind meinem Wissen nach, passend zur Arbeitsweise mit dem fertigen Bild, pixel- und nicht objektbezogen. Das heißt für jeden einzelnen Frame muss der Renderer zusätzlich eine Vektormap berechnen [...] obwohl die zugrundeliegenden 3D-Bewegungen der Objekte in der Szene lange vorher und in viel präziserer Form vorliegen.


Die Motion Vectors nutzt DLSS seit Tag eins, das sagt Liu in der Präsentation wörtlich. Die fallen praktisch ohne Zusatzkosten aus der Pipeline raus, die die Engine ohnehin fährt. Und objektbezogene Masken gibt es zusätzlich, engine-seitig: Der Entwickler kann Krug, Trauben, Flaschen einzeln maskieren und jedes Objekt mit eigenen Slidern für Struktur und Ton steuern. Genau das Objekt-Labeling, das du forderst, existiert also, nur dort wo es sinnvoll ist.


PCGH_Torsten schrieb:
Rotoskopie ist übrigens das genaue Gegenteil: Man bewegt einzelne Bildelemente tatsächlich dreidimensional [...] Zum Beispiel die alten Disney-Filme waren Meisterwerke dieser Technik [...]


Was du beschreibst, ist der Multiplan-Effekt (Multiplane Camera). Rotoskopie ist das Abpausen von Realfilm-Vorlagen fürs Zeichnen, also genau das händische Freistellen, das Graphiccarsten meinte. Disney hat beides gemacht, aber das sind zwei verschiedene Techniken. ;)


PCGH_Torsten schrieb:
Jein: "Pathtracing" gemäß Nvidia-PR-Sprech ist ein Rendering des gesamten Bilds mittels Raytracing, während ein sogenanntes "Raytracing"-Bild gemäß Nvidia-PR-Sprech auch zu 99 Prozent aus Rasterizing bestehen kann. [...] Meinem Wissen nach ist das bei "Pathtracing"-Spielen weiterhin nicht flächendeckend der Fall [...]


Dass nicht jeder Pfad bis zur Lichtquelle verfolgt wird, ist bei Monte Carlo mit grob einem Sample pro Pixel pro Frame normal und kein Manko. Das Budget fließt in Light Sampling (ReSTIR) und Denoising. Per Definition bleibt es trotzdem Pathtracing, die Konvergenz kommt über Samples und Frames.


PCGH_Torsten schrieb:
Nein, da ist kein Rasterizing mehr im Spiel. Aber es gibt jede Menge andere (KI-)Tricks, um nicht jedes Pixel in jedem Frame mit allen in Frage kommenden Lichtquellen verbinden zu müssen. [...] Alle drei Beispiele integrieren aber zusätzlich noch temporal, verfolgen also nicht jeden Strahl in jedem Frame bis zu Ende für Echtzeitberechnung.


Nach der Messlatte "jeder Strahl, jedes Pixel, jedes Frame bis zum Ende" gibt es kein Echtzeit-Pathtracing und wird es auch nie geben. Temporale Akkumulation ist kein Trick, der das Pathtracing entwertet, sondern das, was es in Echtzeit überhaupt möglich macht.


PCGH_Torsten schrieb:
Sowas macht DLSS aber allgemein nicht, es hat ja nicht einmal Zugriff auf die nötigen Geometriedaten die Ausrichtung von Wand und Lichtquelle zueinander definieren.


Und genau das stimmt so nicht mehr für DLSS 5. Liu in der SIGGRAPH-Keynote, sinngemäß: Man nutzt interne Buffer des Renderers, konkret Albedos, Surface Normals und Teile der Lighting-Information, damit das Modell versteht, wozu es konsistent bleiben muss. Die Ausrichtung der Wand steht in den Surface Normals drin, pro Pixel, inklusive Oberflächenstruktur. Und selbst Lichtdaten werden mitgefüttert. "Nur das fertige Bild auswerten" ist damit hinfällig.

PCGH_Torsten schrieb:
Übersimplifiziertes Beispiel: Wenn du den Umriss eine Autos renderst und die Räder vergisst, würde DLSS ein vollständiges Auto mit Rädern ausspucken. Aber es wäre ein KI-Bild eines solchen Autos, nicht ein Rendering des gewünschten Autos an der gewünschten Position.


Widerlegt, und zwar ausgerechnet von Nvidia selbst. Gaff in derselben Keynote: DLSS 5 respektiert den Render-Frame komplett und ändert die Geometrie in keiner Weise. Kein Objekt kommt hinzu, keins verschwindet.


Und dein Auto-Beispiel ist fast 1:1 das Szenario, das Liu selbst durchspielt, nur mit einer Narbe: Wenn der Held eine Narbe hat und das Modell sie "nicht mag" und entfernt, ist es der falsche Charakter. Deshalb wurde das Modell hart darauf trainiert, den Intent zu respektieren. Sinngemäß: Die Narbe darf besseres Skin Shading bekommen, aber sie darf niemals verschwinden. DLSS 5 darf das Bild so verändern, dass es die Story nicht verändert. Genau dein Räder-Fall, adressiert in der Präsentation. Das ist ja genau der Zweck des Modells und warum DLSS 5 überhaupt funktioniert.


Einfach nochmal die Präsentation schauen, ich hab fast den Eindruck, dass du die bisher noch gar nicht gesehen hast. :)
 
Zurück