RT-Kerne: Was sie sind und wie sie an einer GPU für Ray Tracing arbeiten

RT-Kerne sind ein Stück Hardware, die NVIDIA implementiert aus der RTX 2000-Serie von Grafikkarten und seine Hauptaufgabe ist es, zu beschleunigen Ray Tracing , aber gleichzeitig ist es fast so effizient wie mysteriös. Was ist diese Hardware und wie funktioniert sie? Welche Vorteile bringt es? Wir erklären es Ihnen schnell und einfach.

Die Arbeit der RT-Kerne ist sehr einfach. Sie sind für die Berechnung des Schnittpunkts zwischen den Strahlen und den Objekten in der Szene verantwortlich. Diese Definition ist jedoch zu einfach, um den gesamten Prozess zu erklären, den diese Hardware ausführt. Bevor wir jedoch über die RT-Kerne sprechen, beginnen wir am Anfang.

RT-Kerne

Was ist Raytracing?

Ray Tracing ist eine Technologie, deren Funktionsweise auf der Verfolgung von Lichtstrahlen in einer Szene basiert, die auf den darin enthaltenen Objekten basiert.

RayTracingBase

Die ersten Strahlen, die ausgeführt werden, sind die sogenannten Primärstrahlen (Primärstrahlen) oder besser bekannt als "Augenstrahlen" oder "Kamera Strahlen ”; Diese dienen dazu, die Sichtbarkeit der Szene zu überprüfen, dh welche Objekte aus Sicht der Kamera (Sicht des Benutzers) sichtbar sind. Das Problem dabei ist, dass die primitivste Form des Algorithmus uns zwingt, einen Strahl von der Kamera auf jedes der Pixel in der Szene zu schießen, was sehr ineffizient ist, weshalb viel einfachere Mechanismen verwendet werden.

Bounding Volume Hierarchy, Szenenoptimierung

Am besten organisieren Sie die Geometrie der Szene in einer räumlichen Datenstruktur, die uns dabei hilft, den Prozess zu beschleunigen. Die heute am häufigsten verwendete ist die sogenannte Bounding Volume Hierarchy (BVH).

Die Idee ist, eine dreidimensionale Karte zu haben, wie die Geometrie in der Szene im aktuellen Frame organisiert ist:

BVH

Welches ist in Form eines Baumes organisiert:

Baum der Begrenzungsvolumenhierarchie

Die mit Zahlen gekennzeichneten Objekte sind die Felder, die andere Felder enthalten, und die Dreiecke, aus denen die 3D-Geometrie der Szene besteht. Dreiecke befinden sich immer auf der letzten Ebene des Binärbaums. Im Beispiel sind sie mit Buchstaben markiert, um sie besser zu identifizieren und von den Feldern zu unterscheiden.

Der BVH der Szene wird unter Berücksichtigung der Position der Objekte in Bezug auf die Kamera erstellt. Es kann jedoch auch ein anderer BVH in Bezug auf die indirekten Strahlen erstellt werden, die aus dem Aufprallen des Lichts auf ein Objekt resultieren. In diesem Fall wird eine weitere BVH erstellt, in der die BVH neu organisiert wird, wobei das Objekt, das den indirekten Strahl erzeugt, als Ausgangspunkt verwendet wird.

RT Cores-Funktionalität

Sobald wir den BVH definiert haben, können wir definieren, was der RT-Kern ist: eine Art Einheit, die den BVH-Baum kontinuierlich durchquert und alle verschiedenen Pfade im Baum durchläuft, um jedem eine Antwort zu geben. .

RT Core Esquema

Damit Sie es am Beispiel des obigen Baums besser visualisieren können, sind die Pfade, die der RT Core zurücklegen würde, die folgenden:

  • 1 → 3 → a
  • 1 → 3 → b
  • 1 → 3 → c
  • 1 → 2 → 4 → d
  • 1 → 2 → 4 → z
  • 1 → 2 → 5 → f
  • 1 → 2 → 5 → g

Abhängig von der Art des Knotens des Baums, in dem sich der RT Core beim Navigieren in der Szene befindet, wird je nachdem, ob es sich um eine Box oder ein Grundelement handelt, eine Schnittpunktberechnung oder eine andere angewendet. Aus diesem Grund haben RT-Kerne zwei Arten von Einheiten, um den Schnittpunkt zu berechnen: eine für die Kästchen, was viel einfacher ist, und eine für die Grundelemente.

RT-Core-NVIDIA

Tatsächlich spielt für die Strahlverfolgung nur der Schnittpunkt zwischen dem Strahl und dem Grundelement / Objekt eine Rolle, da die Kästchen nur eine Möglichkeit sind, die Geometrie der Szene zu organisieren. Es ist genau der Schnittpunkt mit Strahl / Grundelement, der die Art des Schnittpunkts angibt, den der Strahl mit dem Objekt erzeugt hat, und welche Art von Shader ausgeführt wird, um die visuellen Eigenschaften des Objekts zu manipulieren, obwohl dies nicht der Fall ist Arbeit von RT Core, da es einfach darüber informiert, ob und auf welche Weise es eine Kreuzung gibt oder nicht, so dass seine Arbeit auf diese Aufgabe beschränkt ist.