franzerich schrieb:
Hä? Ich komme da immer wieder durcheinander. Was ist denn der Unterschied zwischen Pathtracing und Raytracing? Ist das nicht ein- und dasselbe?
Ja und Nein zur gleichen Zeit.
Raytracing ist ein "Oberbegriff", der verschiedene Techniken beschreibt und das fängt zum Beispiel beim Raycasting an als eine der einfachsten Formen. Pathtracing ist aktuell die "letzte" Form des Raytracing. Pathtracing versucht dabei durch stochastische Methoden den Rechenaufwand in einem vertretbaren Rahmen zu halten. Hier wird die
Monte-Carlo-Simulation genutzt.
Du kannst dir es so vorstellen: Beim Raycasting wird ein Strahl abgeschickt, sobald er auf ein Objekt trifft wird der Farbwert des Objektes ermittelt und zurückgesendet, nicht mehr. Das ist die einfachste Form des Raytracing und beinhaltet bis auf die Verdeckung von Objekten "nichts" weiter. Wenn du Beleuchtung/Schatten haben möchtest, muss du von dem Objekt aus einen weiteren Strahl absenden, der in Richtung der Lichtquelle gesendet wird, trifft er auf die Lichtquelle, wird der Pixel aufgehellt, trifft er auf ein Objekt abgedunkelt - wir haben also Licht und Schatten. Willst du Spiegelungen, musst du den Strahl "reflektieren", als rekursiv arbeiten.
Man bezeichnet die Strahlen auch als Primärstrahlen und Sekundärstrahlen (auch Licht- bzw. Schattenstrahlen), die unterschiedliche Aufgaben haben. Du benötigst bei einem "normalen" Raytracer immer mehr Strahlen und da sind die primären weniger das Problem als die sekundären. Man benötigt sehr viele von diesen, um ein akkurates Bild zu erzeugen. Beim Pathtracing wird jetzt mit dem Zufallsprinzip gearbeitet: Man sendet x Schatten und Lichtstrahlen in verschiedene Richtungen, die per Zufall bestimmt werden. Es geht hier dann nicht mehr darum, "alle" Daten zu bekommen, sondern "nur genug". Dadurch entsteht ein verrauschtes Bild. Mit Denoising kann man wiederum das Bild finalisieren, weil man aus den umgebenden Pixeln den Wert interpolieren kann.
Rickmer schrieb:
Der eine Typ redet bezüglich Skalierung von Leistung gegen Auflösung aber ziemlichen Unsinn. Eine 'doppelt so hohe Auflösung' gleich 'viermal so viele Pixel' ist noch richtig, aber die Schlussfolgerung, dass man dann ein viertel so viele FPS hat ist einfach falsch.
Kommt darauf an. Gehen wir von einer "optimalen" GPU aus, dann kommt es hin, dass viermal so viele Pixel ein Viertel der FPS bedeuten.
Nur gibt es nicht so etwas wie eine optimale GPU, da diese eine Komplexität hätte, die man so nicht abbilden kann. GPUs organisieren ihre Rechenwerke in Gruppen und das auch mit einer möglichst simplen Kontrolllogik, damit man viele Rechenwerke unterbringen kann. Optimal wäre, wenn jedes Rechenwerk seinen eigenen Datenstrom hätte und vollständig unabhängig voneinander agieren kann. Ist so aber nicht. NVIDIA und AMD organisieren die Rechenwerke in Gruppen. In Software ist es bei AMD 2 × 32 + 32/64 und NVIDIA zu 2 × 64. In Hardware etwas anders. Man benötigt also für die Rechenwerke gleiche Operatoren und muss diese passend mit Daten füllen.
Die Auslastung der Rechenwerke - gerade bei den großen Karten - fällt mit steigender Auflösung immer leichter, sodass mehr Daten zusammen kommen. Entsprechend kann die GPU die Rechenleistung besser auf die Straße bringen und sinkt die FPS nicht entsprechend mit der Steigerung der Auflösung.
S.Kara schrieb:
Die Frage ist mit wie vielen Samples per Pixel.
Natürlich steigert man mit mehr Samples pro Pixel die Qualität des Bildes zum Ende hin, nur sollte man sich bewusst sein, dass ab einer gewissen Anzahl an Samples der Gewinn an Qualität nicht mehr in Relation zur Rechenleistung steht.
Genau deswegen gibt es auch Pathtracing und die entsprechenden Denoising-Algorithmen, damit man die benötige Rechenleistung möglichst weit reduziert, damit man effizient an in gutes Bild kommt.
S.Kara schrieb:
Wir sind von vollwertigem Pathtracing noch ein gutes Stückchen entfernt.
Sind wir das? Warum? Ab welchem Schwellenwert von Samples ist denn ein Pathtracer denn vollwertig? Ich kann hier Bilder mit 1, 2, 4, 8, 16, 32, 64 und 128 primären Strahlen und damit verbunden auch sekundären Strahlen berechnen lassen. Ich kann auch 0, 1, 2, 4, 8 und 16 Bounces auswählen und entsprechend steigt der Aufwand zur Berechnung des Bildes an, ohne dass die Qualität in den höheren Stufen merklich zu nimmt.
Während bei einem Strahl und einem Bounce das Bild stark verrauscht ist und selbst das Denoising an seine Grenzen kommt, reicht bereits der zweite Bounce und der zweite Primärstrahl aus, damit die Qualität merklich steigt und der Denoiser quasi ein sehr gutes Bild erzeugt. Die höheren Einstellungen bringen dann visuell überhaupt keinen Unterschied mehr, benötigen nur mehr Zeit. Den Unterschied in den hohen Einstellungen sieht man nur, wenn man den Denoiser rausnimmt. Nur warum sollte man das machen?
Klar, ich kann auch denken, dass nur 128 Samples und 128 Bounces "optimal" sind, nur verschwendet das massiv Zeit und hat quasi keinen Mehrwert.
.Sentinel. schrieb:
Gut, dass Du das in Anführungszeichen gesetzt hast (den Satz zum Schluss leider nicht), denn ab dem Pathtracing an sich, geht es dann weiter nur noch um Genauigkeit (Samples) mit nach oben hin "diminishing returns".
Ich hab hier eher das Gefühl, dass manche hier denken, dass simple "Brutforce"-Vorgehensweisen immer "besser" wären, was Qualität angeht, ohne dass sie verstehen, dass Brutforce einfach irgendwann nicht mehr funktioniert.
Ein Pathtracer "ohne" Denoiser ist zwar theoretisch möglich, aber dann reden wir wirklich von Sample-Raten jenseits von Gut und Böse. Dank des Denoisern kann man aber die Sampleraten reduzieren und das deutlich.
snickii schrieb:
Aber doch auch nicht besser als viele andere Spiele die mit weitaus weniger vRAM auskommen, also warum benötigen manche Spiele so viele vRAM?
Alles eine Frage der Auflösung der Texturen, wie viele Texturen genutzt werden, wie aufwendig die Modelle sind, auf denen die Texturen gepflanzt werden und so weiter.
snickii schrieb:
Oder ich verbrauche in Horizon Zero Dawn und God of War weniger als in The Last of Us Part 1.
Was daran liegt, dass in dem Spiel sehr hoch auflösende Texturen verwendet werden und auch die Modelle entsprechend viele Polygone nutzen.
Dazu kommt aber auch, dass es davon abhängt, wie viele Daten vorgeladen werden können, wie das Streaming agiert und Co.
@Arcturus128 ließ mal den Kommentar über meinem. Ich wollte eigentlich ein paar mehr sammeln, lass es aber mal an der Stelle. Dieser Beitrag ist aber exemplarisch dafür, was hier oft - zugeben nicht unbedingt in dem Thema hier - zu lesen ist, wenn es um RT geht.