Jein.
"Spiegelungen" gab es schon vorher. Aber eigentlich waren es keine Spiegelungen. Das mag nach einer Kleinigkeit klingen, aber bei bisherigen Rendermethoden wurde eben alles nur hinbeschissen. Das klingt erst mal nicht sonderlich schlimm, zieht aber enorme Rattenschwänze hinter sich her.
Bei Spiegelungen gab es bisher zwei Möglichkeiten: Cube Maps oder Screen Space Reflections.
Cube Maps gibt es schon ewig und jedes bisherige Rennspiel hat mit Cube Maps die Spiegelungen im Lack dargestellt. Mit der Zeit wurde das auch ziemlich gut, hat aber dennoch ein paar Hasenfüße. Man braucht nämlich einiges an Tweaking, damit die Spiegelungen immer plausibel dargestellt werden und nicht out-of-sync sind, so wie hier:
https://s14-eu5.startpage.com/cgi-b...pinfy.jpg&sp=72fb2b70369894532d7035bef835dd45
Bei einer gekrümmten Oberfläche mag das relativ egal sein, bei einer glatten Oberfäche ist das aber auch gerne mal ein Problem. Aus bestimmten Blickwinkeln sieht das ganze immer doof und falsch aus, weil es eben keine Spiegelungen sind, gerade bei flachen Winkeln werden Cube Maps gerne mal "falsch" und komplexe Formen sind auch unmöglich, plausibel darzustellen, weil Cube Maps konzeptbedingt keine Eigenspiegelung und Eigenbrechung beherrschen. Oder sieht das für dich plausibel aus?
https://s14-eu5.startpage.com/cgi-b...re-43.png&sp=6e3f5536b742b5c8f289e0a8d8cf9510
Spieleentwickler haben seit etwa 7 Jahren eine weitere Möglichkeit, Spiegelungen zu erstellen: Screen Space Reflections. Eigentlich ist das Prinzip hinter SSR ganz ähnlich wie das von Raytracing und funktioniert eigentlich ziemlich gut. Das ganze hat aber ein entscheidendes Problem: es kann nur das gespiegelt werden, was auf dem Bildschirm zu sehen ist. Im Idealfall (keine Objekte im Vordergrund, glatte Oberfläche mit sehr flachem Lichteinfall) sieht das ganze aber sehr gut aus. Es hat auch den entscheidenen Vorteil, dass es schnell und einfach implementiert werden kann. Das können sogar Post-Process Injectors. Wenn allerdings etwas, was gespiegelt werden soll, NICHT im Screen Space vor kommt, sieht das ganze so aus:
https://s14-eu5.startpage.com/cgi-b...89o2q.gif&sp=aeaf7c73a7e6ceaf0d3cc01ce963c14e
Die blinkenden Bereiche werden von Geometrie oder vom Bildschirmrand abgeschnitten und daher nicht richtig gespiegelt. Im falschen Winkel sieht man also von der Spiegelung wieder gar nichts.
Und jetzt kommt Raytracing. Klingt plakativ, ist aber so: Raytracing macht alles automatisch richtig. Pixelgenaue Spiegelungen und Lichtbrechungen, die IMMER gemoetrisch korrekt sind. Schatten, die nie pixelig werden. Globale Beleuchtung, die nie glitchig ist und immer genau stimmt. Einfach, weil die Lichtausbreitung nicht angenähert, sondern
simuliert wird. Nie wieder komische Spiegelungen, nicht funktionierendes Ambient Occlusion und immer physikalisch korrekte Beleuchtung. Und alles extrem schnell und einfach implementiert, da der Code von Raytracing im Kern nur ein paar Zeilen umfasst. Ernsthaft, selbst Blender beherrscht richtig gutes Raytracing. Und vor 10 Jahren war das ganze Programm knapp 10 MB groß.
Warum hat jetzt Nvidia 10 Jahre gebraucht, um den Algorithmus umzusetzen? Weil Raytracing Leistung braucht. Viel Leistung. Und das war immer ein Problem, denn wenn zu wenige Strahlen berechnet werden, sieht das ganze so aus:
https://s14-eu5.startpage.com/cgi-b...fault.jpg&sp=5495a646bc9af7104ac060ebbec2d34d
Und dafür hat Nvidia mit der neuen Grafikgeneration sogar eine Lösung: ihren per Deep Learning entwickelten Filter, der aus einem stark verrauschten Bild ein noise-freies Bild annähert. Und die Kombination aus beidem, das ist ein Game Changer, der nicht zu vernachlässigen ist.
gRU?; cAPS