Microsoft ändert die Regeln für In-Game-Grafiken mit neuronalen Netzwerken in DirectX 12
Arkadiy Andrienko
Microsoft hat die Möglichkeiten von DirectX 12 für Spieleentwickler erweitert, indem Vorschauversionen von Shader Model 6.10 und AgilitySDK 1.720 veröffentlicht wurden. Das Update konzentriert sich auf das, was als neuronales Rendering bezeichnet wird — ein Ansatz, bei dem maschinelle Lernalgorithmen nicht nur für die Bildskalierung verwendet werden, sondern auch eine direkte Rolle bei der Echtzeitgrafikgenerierung spielen.
Die große Neuerung ist das LinAlg (Lineare Algebra) API-Set, das Unterstützung für Matrixberechnungen direkt in Shadern hinzufügt — den Programmen, die auf der GPU ausgeführt werden, wenn eine Szene gerendert wird. Diese Art von Operationen bildet die Grundlage für modernes maschinelles Lernen und Bildverarbeitung. Jetzt können Entwickler diese Berechnungen direkt in der Grafikpipeline durchführen, ohne Umgehungslösungen, was es viel einfacher macht, Effekte neuronaler Netzwerke in Spiele zu integrieren. Shader Model 6.10 führt auch neue Funktionen für eine präzisere Kontrolle über Berechnungen innerhalb der GPU ein. Insbesondere umfasst es Werkzeuge, die es Shadern ermöglichen, die Struktur der Threadausführung zu berücksichtigen und Aufgaben effizienter zu verteilen, was die Abhängigkeit von spezifischen Hardwareeigenschaften verringert und es einfacher macht, Projekte für GPUs verschiedener Anbieter zu optimieren.
Eine weitere bemerkenswerte Änderung ist die Aufhebung des Limits für den gemeinsamen Speicher einer Thread-Gruppe. Zuvor war die Spezifikation auf 32 KB (und 28 KB für Mesh-Shader) begrenzt, was komplexere Algorithmen einschränkte. Jetzt können Shader auf die tatsächlichen Fähigkeiten einer bestimmten GPU zugreifen, was den Weg für ressourcenintensivere Aufgaben ebnet — einschließlich großer Matrixoperationen, Software-Rasterisierung und Verarbeitung massiver Datensätze. Auf der DirectX 12-Ebene wurden auch gebündelte asynchrone Befehle hinzugefügt. Zuvor wurden Operationen wie das Kopieren oder Löschen von Ressourcen sequenziell durchgeführt, selbst wenn sie datentechnisch nicht überlappten. Der neue Ansatz ermöglicht es, diese Befehle in Batches zu gruppieren und parallel auszuführen, was die Leerlaufzeit der GPU verringert und potenziell das Laden und Verarbeiten von Ressourcen in Spielen beschleunigen könnte.
Das Update betrifft auch Raytracing — die API umfasst jetzt TriangleObjectPositions und ClusterID-Funktionen, die Shadern mehr Informationen über die Geometrie der Szene geben. Dies erweitert die Möglichkeiten von DXR und kann für genauere oder komplexere Lichtalgorithmen verwendet werden. Die Unterstützung für die neuen Funktionen hängt von der spezifischen Hardware ab. Die LinAlg-Matrixoperationen wurden bereits für NVIDIA RTX und Radeon RX 9000 Serien Grafikkarten angekündigt, während Intel sie später erhalten wird. Die restlichen Funktionen werden teilweise auf aktuellen AMD-, Intel Arc- und NVIDIA-GPUs unterstützt, aber wie sie funktionieren, kann je nach Architektur und Treibern variieren.
Insgesamt zeigt dieses DirectX 12-Update, dass Microsoft weiterhin auf eine engere Integration von Grafik und maschinellem Lernen hinarbeitet. Für Gamer könnte das komplexere Grafiken und neue Rendering-Ansätze bedeuten — aber die wirklichen Veränderungen werden erst bemerkbar, wenn Spiele tatsächlich mit Unterstützung für diese Technologien veröffentlicht werden.
Was denkst du — ist neuronales Rendering der nächste große Schritt in der Grafikentwicklung, oder ist es noch mehr ein Experiment für Entwickler? Teile deine Gedanken in den Kommentaren.

