AW: Nvidia Ampere: Fokus angeblich auf "massiv" mehr Raytracing-Leistung und Rasterisierung
Wann sollen die ersten Ampere-High-End Gaming-Karten erscheinen, gibts da eine "Schätzung"?
"erstes Halbjahr 2020" ist ein schon lange stabiles Gerücht und Nvidia hat (mit Ausnahme von Titan und Titan X) seit Kepler-Zeiten keine High-End-Serien mehr im 1. Quartal gelauncht. Also könnte es auch nächstes Jahr wieder auf Mai/Juni hinauslaufen.
Moment mal. Was ich in der RT-Spiegelung sehe, ist ein Bildausschnitt, der komplett geshadet ist, nicht nur eine ungeshadete Textur der abgetasteten Geometrie. Sonst wäre in der Spiegelung ja keinerlei Beleuchtungsinformation drin. Bei den Raytracern, welche ich verwende, ist das egal, weil einfach das gesamte Bild per Raytracing berechnet wird. Wenn man also den Intersect mit der Geometrie hat, wird rekursiv also einfach Schattierung und co. drüber gerechnet. Aber bei einer RT-Rasterisierung-Kombination stelle ich mir das schwierig vor, denn da müsste eigentlich erst die Berechnung der Beleuchtungsinformation passiert sein, die ist ja noch Raster-basiert.
gRU?; cAPS
Eine RTX-Reflexion zeigt idealerweise ein Objekt, das im regulären Raster-Durchlauf gar nicht berechnet wird. Sonst könnte man die gleiche Stelle nämlich auch mit billigen Screen-Space-Reflections darstellen. Geometrie außerhalb des Viewports sollte aber erst geshadet werden, nachdem festgestellt wird, dass sie in einer Reflektion sichtbar wird – sonst verschwindet viel Leistung. Dem Raytraycer ist die Reihenfolge aber egal. Der ermittelt, dass sichtbares Pixel XY die Farbe von Geometriepunkt ABC zeigt. Ob die Farbe von ABC dann aus einem bestehenden Puffer ausgelesen wird oder erst noch berechnet werden muss, ist dem Tracer egal – er ist mit seiner Arbeit fertig. Aktuell fehlt auch die Rechenleistung, um Lichtstreuung und indirekte Beleuchtung am Ende der Strahlenkette direkt mit zu berechnen, sodass abseits der schnell überprüfbaren Reflektivität gar keine Informationen zur getroffenen Fläche bekannt sein müssen, um das Ende eines Raytraycing-Pfades zu definieren.
Ich mag solche pauschalaussagen nicht.
Klar ist es im derzeitigen Status eher ein Feature, das nur einen Aublick auf die Zukunft gibt (wie hunderte Features davor. AA genauso wie Shader, Tesselation, TnL usw).
Aber ob das ganze jetzt viel Leistung frisst hängt hauptsächlich von der Implementierung ab.
Es gibt auch Spiele (World of Tanks?) da frisst es "nur" 30%.
WoT nutzt Raytraycing nur für die Schatten eines Objektes ausgehend von einer Lichtquelle. Die 30 Prozent Leistung gehen also für die Aufwertung von 1 bis 10 Prozent des Bildinhaltes drauf. Prinzipbedingt spielt die Art der Implementierung beim Ressourcenverbrauch eines Raytraycers kaum eine Rolle – der Code ist einerseits elegant simpel, bietet damit aber andererseits auch keine Optimisierungsmöglichkeiten. Rasterizer versuchen die Wirklichkeit auf vollkommen anderem Wege anzunähern und da kann man immer nach einer effizienteren Variante suchen, aber ein
Rasterizer Raytraycer versucht die realen Prozesse nachzuvollziehen und dafür gibt es nur einen Weg.
Die einzige Möglichkeit bei RT Leistung zu "gewinnen" ist also, möglichst wenig RT einzusetzen. Dabei trotzdem eine annehmbare Qualität hinzubekommen ist aber nicht ganz einfach, wie vor allem Battlefield und Call of Duty gezeigt haben. Spart man weniger an der Qualität, hat man entweder den Ressourcenhunger von Redux oder ein 95-Prozent-Rasterizer-Bild wie in WoT.
Bin beim Culling nicht ganz sicher, ob das nicht in Zukunft ein anderes Verfahren benötigt. Immerhin werden beim Culling auch einige Objekte ausgespart, die aber fürs korrekte RT benötigt werden. Eventuell wird man in Zukunft auch durchs Raytracing die Levelgeometrie mitberechnen um zu sehen, welche Objekte der Spieler überhaupt sieht. Raytracing braucht ja grade bei Spiegelungen auch teilweise Objekte, die der Spieler gar nicht sieht und durch Culling ausgeblendet werden.... Allerdings bin ich da grad nicht am Laufenden, wie das beim Hybridverfahren genau funktionieren wird. Im Moment wirkt es, als müssten 2 Verfahren/Algorithmen angewandt werden. Das könnte in Zukunft nur noch einer werden (und Rechenzeit sparen).
Um die Schnittpunkte zwischen Ray und Objekten zu berechnen, muss die Geometrie bekannt sein. Raytraycing ersetzt nur die Rasterisierung und optional die Beleuchtung, aber alle anderen Teile der Pipeline bleiben erhalten. Wo Raytraycing für Spiegelungen außerhab des Screenspace genutzt wird, muss aber auch das Culling zurückgefahren werden, das stimmt. Aktuelle Spiele halten sich aber ohnehin bezüglich der Raytraycing-Reichweite zurück.