ZeroZerp schrieb:
Ich habe hier zunehmend das Gefühl, dass hier das Prinzip des Raytracing nicht verstanden wird, dessen Leistung von den zu berechnenden Pixeln abhängt und weniger von der Anzahl der Objekte, an Schatten, dynamischen Lichtern und Reflexionen (eben genau die Punkte, die jede Rasterisierung derzeit schnellstens an die Grenzen treibt und was per Design sich auch durch Tricks nicht ändern lässt).
Raytracing hat sicherlich Vorteile, um so komplexer die Szene wird und um so mehr runde Oberflächen verwendet werden.
Und natürlich läuft es linear mit den berechneten Pixeln.
Der große Nachteil, den du ignorierst, sind aber die Sekundärstrahlen.
Richtiges RT, das die Beleuchtugsstärke berechnet, schickt nach dem Auftreffen auf eine Oberfläche Strahlen an alle Lichtquellen und je nachdem ob der Weg zu der Lichtquelle verdeckt ist oder nicht, wird die Oberfläche heller oder eben nicht.
Mit einer globalen Lichquelle wäre das ein Sekundärstrahl...also insgesamt 2 Rays.
Hat die Szene noch 20 dynamische Lichquellen, werden aus den 2 Rays, 22 Rays. .....für jeden Pixel, der mit RT berechnet werden soll.
Mit Rasterisierung, ist es natürlich aufwendig, für jede Lichtquelle ihre Beleuchtungswirkung auf die Umgebung zu berechnen, aber das wird da nur einmal(je Frame) gemacht und kann dann für hunderte/tausende Pixel, die davon betroffen sind genutzt werden. Geschickt programmiert ist hier viel Spielraum für Optimierungen.
Man sieht ja bei Tomb Raider wie sowas im Moment aussieht. Mit RT Schatten lief die spielbare Demo für die Presse auf 1080p zwischen 35-50 FPS...mal mehr mal weniger.
Und da gab es nur
eine globale Beleuchtung!
Die von Nvidia gezeigte Szene mit vielen Lichtquellen war sicherlich hübsch, aber da hat ja sogar die Vorführung geruckelt(also eher 20 FPS) und es war auch nur eine handvoll Lichter vorhanden und das in einem kleinen Innenraum ohne Weitsicht.
Und das ist ja nur ein kleiner Teil von RT.
Korrekte Beleuchtung ist das eine. Aber Reflexionen sind das andere.
Da wird mit RT an jeder reflektierenden Oberfläche ein weiterer Ray losgeschickt. An z.B. Glasoberflächen, ergibt sich ein Ray der die Oberfläche trifft, ein Ray der reflektiert wird und ein Ray der gebrochen wird. sind schonmal 3 Rays, und was ist wenn diese Rays auf weitere reflektierende Oberflächen treffen?
Da kann man das Spiel für echtes RT beliebig weit treiben.
Es muss also auch da Grenzen geben und Kompromisse müssen gemacht werden.
Bei Tomb Raider wird mit RT nur die Schatten gemacht, bei BFV nur die Reflexionen.
Und in BFV werden auch nur Einfachreflexionen genutzt...der Ray der die Pfütze trifft nd dann das Fenster, wird keine Reflexion im Fenster sehen.
Der Ray der eine transparente Oberfläche trifft, wird eine Reflexion machen, aber es gibt keine "gebrochenen" Rays, der erste Ray wird einfach noch weiter verfolgt. Genauso bei auftreffen auf Feuer etc.
Sicherlich kleine Kompromisse, die man verschmerzen kann.
Aber Reflexionen haben auch ein Reichweitenlimit. Die Brücke die etwas weiter weg ist, hat deshalb keinerlei Reflexion auf dem Wasser....das sieht echt mies aus.
Die Objekte in den Reflexionen haben ein anderes LOD usw.
Was sich noch zeigen wird, ist der Einfluss von RT auf die CPU und Speicherbelastung.
Denn all die Objekte, die nicht im Sichtbereich des Spielers sind, werden mit Rasterisierung ignoriert. Mit RT müssen die im Speicher liegen und die CPU muss viel mehr Drawcalls abarbeiten(alle Objekte in der Umgebung und nicht nur das was vorne ist).
Was ich sagen möchte.....wir sind noch weit davon entfernt, bis echtes RT in Echtzeit läuft. Das was wir bis jetzt gesehen haben ist alles ganz nett, aber wir werden erstmal nur bestimmte Teilaspekte von RT sehen, und auch da mit vielen Kompromissen.
"it just works" ist eine Lüge.
Rasterisierung macht viele Tricks und "Fehler", aber es sieht trotzdem gut aus. In den von Nvidia vorbereiteten Demos wird der Unterschied natürlich absichtlich extrem gemacht.
Da gibt es dann mit Rasterisierung einfach mal keinerlei Schatten von dynamischen Lichquellen....was aber technisch möglich wäre.
Ich will die Leistung von Nvidia nicht kleinreden....das ist alles ziemlich cool, aber es werden viele Probleme unter Bling Bling und großen Lobeshymnen verborgen.
Bis wir RT mit Reflexionen+Licht/Schatten+Lichtbrechung+alles in mehreren Stufen in Echtzeit sehen können, werden noch viele Jahre ins Land gehen.
Das es jetzt schon irgendwie geht haben wir nur der Kombination mit Rasterisierung zu verdanken.
ZeroZerp schrieb:
Wäre man von der oben genannten Seite hergegangen und hätte eine herkömmliche Engine gezeigt, die durch Umlagerung der GI, AO, Verschattung und Antialias plötzlich 250% schneller läuft, wär da ein Schuh draus geworden und man hätte begriffen, was die neuen Rechenwerke zu leisten im Stande sind, ohne die Shaderzahl in unwirtschaftliche und immer ineffizientere Zahlen schrauben zu müssen.
Du meinst die Zahlen, die sie gezeigt haben, wenn man RT auf einer GTX statt einer RTX laufen lässt?
Hat Nvidia doch gemacht....Juhu, die 2070 ist schneller als eine Titan.
Es hat ja auch niemand bestritten, das mit den RT cores viel Rechenleistung dazu gekommen ist.
Das selbst die 2080 Ti aber nicht genug RT Leistung hat um einen kleinen Teilbereich der RT Effekte in 1080p mit mehr als 60FPS zu rendern ist das, was viele enttäuscht.
Ein fairer Vergleich ist nicht möglich, aber theoretisch denkbar.
Was wäre wenn Nvidia die Chipfläche für shader statt RT cores genutzt hätte und die Reflexionen oder Schatten mit klassische Technik in ähnlicher Qualität realisiert hätte.
Wie wäre dann der Unterschied?
Vermutlich könnte man die Qualität der Refexionen nicht erreichen, aber dafür wären die neuen Karten in allen Spielen besser und nicht nur in den paar RT Titeln, die sie nichmal in brauchbaren FPS schaffen.
Ich sehe da bei RT eben auch kaum Möglichkeiten für Optimierungen. Es ist ja keine neue Technik...RT ist uralt und wenn "mehr Leistung" durch noch schlechtere LOD Objekte, noch weniger Sichtweite und noch weniger RT Auflösung bei mehr Hochscalieren, erreicht wird, kommen wir schnell in Bereiche, wo es gar nicht mehr so geil aussieht.