Technologien

Voxel Global Illumination Technologie
divider

VXGI Technologie

Voxel Global Illumination (VXGI) ist eine verblüffend fortschrittliche Technologie für extrem realistische Beleuchtung, Schatten und Reflexionen bei aktuellen PC-Spielen und Game-Engines.

Die korrekte Berechnung der Beleuchtung ist eine der anspruchsvollsten Aufgaben im Bereich der Grafik. Die Maxwell Grafikprozessor-Architektur stellt einen enormen Fortschritt hinsichtlich der Möglichkeit dar, Lichtberechnungen für beinahe fotorealistische Darstellungen in Echtzeit zu liefern.

In der realen Welt werden alle Objekte durch eine Kombination aus direktem Licht (Photonen von der Lichtquelle treffen direkt auf das Objekt) und indirektem Licht (Photonen von der Lichtquelle treffen zunächst auf andere Objekte, werden reflektiert und treffen dann erst auf das Objekt) erhellt. „Global Illumination“ (GI) bezeichnet Beleuchtungssysteme, die diesen Effekt nachbilden. Szenen ohne indirekte Beleuchtung wirken hart und künstlich. Doch während direkte Beleuchtung relativ leicht zu berechnen ist, sind Berechnungen der indirekten Beleuchtung außerordentlich komplex und anspruchsvoll.

 

Ausschließlich mit direkter Beleuchtung gerenderte Szene

Ausschließlich mit direkter Beleuchtung gerenderte Szene.

 

Mit NVIDIA VXGI gerenderte Szene

Dieselbe Szene mit aktivierter GI. Man beachte die indirekte Beleuchtung und Reflexionen am Boden.

 

Da dieses Verfahren (besonders bei detaillierten Szenen) sehr rechenintensiv ist, wurde GI bisher vor allem zum Rendern komplexer computeranimierter Szenen für Filme auf Grafikprozessor-basierten Offline-Renderingsystemen verwendet. Vereinfachte Formen von GI kommen auch bei beliebten aktuellen Spielen zum Einsatz, beruhen dann aber auf vorberechneten Beleuchtungen. Auf diese „vorgefertigten“ Verfahren wird aus Gründen der Leistungsfähigkeit zurückgegriffen. Da die benötigten Lichteffekte jedoch im Vorfeld berechnet werden müssen, werden zusätzliche Grafikentwürfe für die jeweiligen Szenen benötigt. Die solchermaßen vorgefertigte Beleuchtung ist nicht dynamisch, so dass es schwierig bis unmöglich ist, die indirekten Lichtquellen an Veränderungen im Spiel anzupassen, zum Beispiel beim Hinzufügen einer weiteren Lichtquelle oder wenn Objekte in der Szene bewegt oder zerstört werden. Die vorgefertigte indirekte Beleuchtung ist für statische Objekte in einer Szene ausreichend, aber für animierte Charaktere oder bewegliche Objekte nicht angemessen.

Im Jahr 2011 haben Ingenieure von NVIDIA einen innovativen neuen Ansatz zur schnellen, dynamischen Näherungsberechnung von GI in Echtzeit auf dem Grafikprozessor entwickelt und demonstriert. Diese neue GI-Technologie verwendet ein Voxelraster zum Speichern von Daten zur Szene und zur Beleuchtung und setzt einen neuartigen Überlagerungsprozess eines Voxelkegels ein, um dem Voxelraster Daten zur indirekten Beleuchtung zu entnehmen. Cyril Crassin von NVIDIA beschreibt das Verfahren in seinem Paper zum Thema und in einem Video von der GTC 2012, das hier abrufbar ist. Die ‘Elemental’ Tech-Demo der Unreal Engine 4 von Epic aus dem Jahr 2012 verwendet ein ähnliches Verfahren.

 

Die 'Elemental' Tech-Demo der Unreal Engine 4 von Epic erzeugt verblüffende GI durch Überlagerung eines Voxelkegels

Die 'Elemental' Tech-Demo der Unreal Engine 4 von Epic erzeugt verblüffende GI durch Überlagerung eines Voxelkegels.

 

Seitdem arbeitet NVIDIA an der neuen Generation dieser Technologie. VXGI wird neue Software-Algorithmen und spezielle Hardware-Beschleunigung der Maxwell Architektur nutzen.

Die Cornell-Box

Im Jahr 1984 entwickelten Wissenschaftler an der Cornell University eine einfache Szene als Beispiel für Render-Berechnungen. Die Szene sollte möglichst einfach sein, damit die vom Computer generierten Bilder gut mit Fotos verglichen werden konnten.

 

Mit NVIDIA Iray Render-Technologie generiert

 

Das obige Bild wurde mit unserer aktuellen iray Render-Technologie generiert. Diese Technologie nutzt die Leistung mehrerer paralleler Grafikprozessoren in der Cloud zum Rendern fotorealistischer Bilder beinahe in Echtzeit. Das Bild kommt einer realen Cornell-Box sehr nahe.

Unser Ziel für VXGI war jedoch der Betrieb in Echtzeit. Da ein komplettes Raytracing der Szene zu rechenintensiv wäre, sind Näherungsberechnungen erforderlich.

 

Opazitätsvoxelansicht derselben Szene

 

Das obige Bild zeigt eine Opazitätsvoxelansicht derselben Szene. Jeder Würfel entspricht einer groben Darstellung der zugrunde liegenden Geometrie und kann verwendet werden, um die Lichtberechnungen zu beschleunigen.

 

Berechnung von Farbe und Intensität des Lichts beim Aufprall auf Voxel mithilfe schneller Verfahren für direkte Beleuchtung

 

Die Emissionsvoxelansicht ist der spannende Punkt. Man stelle sich vor, dass jeder Würfel (Voxel) von sämtlichen vorhandenen Lichtquellen in der Szene direkt angeleuchtet wird. Die korrekte Berechnung von Farbe und Intensität des Lichts beim Aufprall auf Voxel ist mit schnellen Verfahren für direkte Beleuchtung möglich. Der springende Punkt ist nun aber, dass die erhellten Voxel im nächsten Schritt selbst als Lichtquellen fungieren und zu indirekter Beleuchtung führen.

 

Ansicht mit reflektiertem Licht von den direkt beleuchteten Oberflächen

 

Die Farben sind in diesem Bild womöglich etwas verwirrend. Betrachten wir zunächst die Wände. Die ursprünglich rote Wand hat jetzt einen grünen Schimmer, und die grüne Wand schimmert rötlich. Dies liegt daran, dass jede Wand einen Teil der Farbe annimmt, die von der gegenüber liegenden Wand abgestrahlt wird. Außerdem beleuchtet die rote Wand schwach die am nächsten liegende Kugel, und so weiter. Tatsächlich wird hier das Licht dargestellt, das von den direkt beleuchteten Oberflächen reflektiert wird.

 

Alle Lichteffekte zusammen für extrem realistische Szenen

 

Alle diese Lichteffekte zusammen ergeben extrem realistische Szenen. Und das Wichtigste: Mit VXGI lassen sich alle diese Berechnungen in Echtzeit durchführen.