Menü
c't Magazin

Nvidias Asteroids-Demo zeigt Mesh- und Task-Shader in Aktion

Nvidias Asteroids-Demo zeigt, wie Turing-GPUs der GeForce-RTX-Familie mittels Mesh- und Task-Shader beeindruckende komplexe Szenen flüssig darstellen.

Von
vorlesen Drucken Kommentare lesen 97 Beiträge
Nvidia zeigt neue Tech-Demo für Turing-GPUs (Video)

Der Flug durch Nvidias Asteroidenfeld beeindruckt nicht nur durch die Zahl der Objekte, sondern auch durch den Detailgrad naher Gesteinsbrocken.

(Bild: Nvidia Developer Blog )

Mit der Turing-Architektur der GPU-Serie GeForce RTX 2000 hat Nvidia eine neue programmierbare Geometrie-Shading-Pipeline eingeführt, die sogenannte Task- und Mesh-Shader nutzt. Der Vorteil laut Nvidia: Anstatt einzelne Dreiecke in einer Fixed-Function-Pipeline zu berechnen, arbeitet die neue Pipeline mit parallelen Thread-Gruppen, um kompaktere Meshes (Meshlets) zu generieren. Die Regeln dafür gibt die jeweilige Anwendung vor.

Durch diesen Ansatz soll sich die Geometrie-Pipeline besser programmieren lassen. Das ermögliche nicht nur besseres Culling und feinere LOD-Abstufungen (Level of Detail), sondern erlaube es Shadern auch, Oberflächen prozedural zu generieren.

Nvidias Tech-Demo zeigt, wie Mesh Shading in der Praxis funktioniert.

Laut Nvidia besteht die Asteroids-Demo aus 350.000 Asteroiden zu je zehn Millionen Dreiecken. Insgesamt umfasst die Szene demnach bis zu 3,5 Billionen Dreiecke. Um der Komplexität Herr zu werden und flüssige Bildraten zu erreichen, lagert sie das Performance-fressende Object List Processing von der CPU in parallel ausführbare Mesh-Shading-Programme auf die GPU aus (GPU-Culling). Bisherige GPUs mussten jedes Dreieck aufwendig einzeln prüfen.

In der höchsten LOD-Stufe bestehen die Asteroiden in der Demo aus bis zu sechs Millionen Dreicecken.

(Bild: Quelle: Nvidia Developer Blog )

Zudem schalte man bei jedem Asteroiden dynamisch zwischen 10 LOD-Stufen um, deren höchste bis zu sechs Millionen Dreiecken umfasst. Damit wirkten die größten Brocken auch aus der Nähe noch sehr detailliert. Die Übergänge zwischen den Stufen berechnen ebenfalls die Mesh-Shader. Tessellation komme in der Demo hingegen nicht zum Einsatz.

Die Kombination aus GPU-Culling und den dynamischen LOD-Stufen reduziere die Anzahl der tatsächlich gezeichneten Dreiecke drastisch und ermögliche extrem komplexe Szenen. So verwerfe zunächst der Task-Shader die nicht sichtbaren Asteroiden und lege die LOD-Stufe fest. Dann prüfe der Mesh-Shader die Meshlets. Zuletzt wende man GPU-Culling auf die verbleibenden Dreiecke an. So blieben von den an anfänglich Billionen potenziell sichtbaren Dreiecken nur noch 50 Millionen übrig, die tatsächlich gerendert würden.

Besitzer einer Grafikkarte mit Turing-Chip können sich die Asteroids-Demo bei Nvidia herunterladen. Allerdings muss man sich für das (kostenlose) Nvidia Developer Program anmelden. (bkr)