Teralios schrieb:
Zu mal das Thema nicht auf »Urlaub« ist, es geht weiterhin um DXR und für einige wie mich eben darum, ob die RT Cores in der Form zusammen mit RTX einen Weg für RT vorschreiben und ob es ein guter Weg ist oder dazu dient andere ggf. auszubremsen.
Raytracing ist ein Verfahren, wodurch man versucht Eine Szene dadurch physikalisch korrekt zu belichten, indem man Messtrahlen verschickt, die einen Lichtstrahl simulieren sollen.
Da lässt sich nichts ausbremsen. Entweder verschickt man Strahlen und tastet die Szene damit ab, oder nicht.
Dieser Technik gibt es seit 1963. Die Qualität und den Realismusgrad der Szene wird maßgeblich dadurch bestimmt, wie man die Ergebnisse eines Strahls, der auf ein Objekt trifft auswertet und in welcher Dichte man die Strahlen aussendet.
Wird z.B. gewünscht über RT eine Spiegelung oder eine Global Illumination zu berechnen und nicht nur den direkten Lichtanteil, muss ich vom Ort des Aufpralls weitere Strahlen verschiessen, die dann wiederum Erfassen, wass sich auf dem Punkt, wo unser Primärstrahl aufgetroffen ist spiegeln könnte bzw. bei GI, ob an dieser Stelle das Licht nicht nur durch die Sonne beleuchtet wird, sondern eben auch durch andere "indirekte" Dinge.
Raytracing basiert auf einem Brute- Force Ansatz. Das heisst ich muss diese Berechnung MINDESTENS für jeden Bildpunkt einmal durchführen. Je nachdem, wie der Lichtstrahl abprallt oder abgelenkt wird (beim Auftreffen wird ein randomisierter zweiter Strahl von der Aufprallstelle ausgesandt), ist das Ergebnis nicht genau genug bzw. konsistent, also die Gleichung nicht sauber anzunähern.
Das führt das dann oftmals in einem zu hellem oder zu dunklen Pixel im Ergebnis:
Um dieses Rauschen nun wegzubekommen, muss ich in einem leicht anderen Winkel für den schwarzen Punkt erneut einen Strahl ab Aufprallstelle losschiessen.
Je mehr Strahlen ich versende umso genauer wird der Bereich der hinter des ersten Sichpunktes liegt abgetastet und die Wahrscheinlichkeit, dass die Farbe des Pixels zuverlässig bestimmt wird.
Wenn man nun also die Grundlagen der Gleichungen betrachtet, so sieht man sehr schön, dass prinzipbedingt rechentechnisch ein Höllenaufwand betrieben werden muss, um per Raytracing ein sauberes Bild zu generieren.
Dieser diffusen aber die physikalischen Gegebenheiten von Licht am saubersten annähernden Ansatz basiert also auf einer Brute Force- Technik.
Das Wort Brute Force sollte hier die Grundlagen allen Übels ob der Last der Berechnungen schon gut umschreiben: Es lässt sich nicht schummeln bzw. hat mein keine großen Spielräume um Beschleunigungsstrukturen aufzubauen, sollte das Ergebnis am Ende überzeugen wollen.
Was ist nun passiert?
Da man mittels Rastertechnik einigen Problemen nicht wirklich EFFEKTIV beikommen kann (z.B. Spiegelungen, Anzahl an qualitativ hochwertig dynamische Schatten erzeugende Lichtquellen, AO->VXAO kostet um die 30% Performance etc.) und man bemerkt hat, dass die Rechenleistung von Grafikkarten im Allgemeinen in astronomische höhen geraten, hat man sich zusammengesetzt (Microsoft, AMD, Intel, nVidia) und Ansätze diskutiert, wie man einen hybriden Ansatz gestalten könnte.
Daraus entstand DXR als universelle Schnittestelle zum Betriebssystem.
DXR ist nichts anderes als jede andere DX Schnittstelle (9,10,11,12) und dient den Entwicklern dazu immer die standardisierte Aufrufe an Spiele schicken zu können, die alle Spiele gleich interpretieren und beliefern.
Früher musste der Softwareentwickler für jede Grafikkarte, Soundkarte etc. eigene Renderpfade eine eigene Musikausgabe einen eigenen Pfad in seiner Software anlegen.
Das kann er sich jetzt sparen, da es eine Unviersalschnittstelle gibt, die er unbesehen beschicken kann. Diese übersetzt dann im Zusammenspiel DirectX mit den Treibern das ganze so, dass die Hardware, die dahinter betrieben wird das versteht.
Man hat mit den DX Schnittstellen sozusagen einen Hypervisor für Grafik und Sound gebaut.
Nach den Ausführungen, die ich hoffentlich verständlich genug gehalten habe, nochmal zu Deiner Frage, ob die Integration zum Nachteil von irgendjemandem vorgenommen werden kann.
Extrem unwahrscheinlich.
-Weil erstens alle bei der Entstehung von DXR in einem Boot saßen.
-Zweitens das durchführen von Raytracing schon seit Jahrzehnten so gemacht wird und prinzipbedingt so gemacht werden muss. Ein Kompromiss in Sachen Geschwindigkeit dreht auch immer gleichzeitig an der Qualität des gelieferten Bildes (z.B SVxGI der Cryengine).
-Drittens ist der Witz des Bruteforce Ansatzes wie der Name schon sagt, dass Du alle Bildpunkte einfach oder mehrfach beschicken/samplen musst.
Der Rechenaufwand ist also Herstellerunabhängig für alle Produkte, die diesbezüglich an die DXR Schnittstelle andocken sollen gleich.
nVidia ist einfach nur der erste Hersteller, der durch seine Treiber den Karten das Andocken an die DXR Schnittstelle gewährt und zusätzlich mit der RTX Hardware eine Beschleunigereinheit für RT Operationen bereitgestellt hat.
Es ist also vergleichbar wie damals, als AMD die erste Grafikkarte auf den Markt geworfen hat, die DX11.1 kompatibel war. Oder wie Microsoft mit DX7 den Softwareentwicklern hardwareunabhängig eine standardisierte T&L Funktion zur Verfügung gestellt haben.
Grüße
Zero
!Achtung! Die Darstellung der Technik dahinter wurde sehr vereinfacht wiedergegeben und umfasst nicht alle Specials, die es in Sachen Raytracing gibt. Das ist keine tiefgreifende Abhandlung, sondern soll nur aufzeigen, dass der Rechenaufwand bei RT für alle Hersteller der gleiche ist und somit keine unfairen Bedingungen oder Benachteiligungen für andere Parteien auftreten können, die auf den RT Zug aufspringen wollen.