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". ^^