20

RayTracing wird zukünftig Teil von DirectX 12

Golem, Heise und PC Games Hardware berichten über die neuen Microsoft-Schnittstelle "DirectX Raytracing" (DXR), welche Microsoft auf der GDC 2018 in San Francisco angekündigt hat und demnächst in DirectX 12 integrieren will. Hierbei handelt es sich um eine Möglichkeit, einzelne Grafikelemente wie Beleuchtung, Schatten und Umgebungsverdeckung mittels RayTracing zu lösen, am allgemeinen Rasterizer-Ansatz heutiger 3D-Grafik wird also (vorerst) noch nicht gerüttelt. Allerdings erfordern wohl auch nur einzelne RayTracing-Elemente schon eine diesbezügliche Beachtung bzw. Vorsichtnahme bei der zugrundeliegenden Rasterizer-Grafik, kann selbiges also nicht einfach so bei bestehenden Spieletitel übergestülpt werden. Erreicht werden soll letztendlich eine realistischer Beleuchtung, welche dann eben nicht mehr auf einzelnen Lichtquellen, sondern "echten" Lichtstrahlen basiert – mit allerdings dementsprechendem Rechenaufwand.


RayTracing-Demo mittels der Northlight-Engine von Remedy

RayTracing-Demo "Pica Pica" mittels der Halcyon-Engine von EA

Interessant ist an dieser Stelle, das nVidias Tensor-Cores, welche mit dem Volta-Chip GV100 derzeit rein für HPC-Bedürfnisse benutzt wurden, selbige RayTracing-Berechnungen beschleunigen können sollen. Dies würde den Einsatz von Tensor-Cores auch in Gaming-Grafikchips nahelegen – womit nVidia auch nicht zu der zuletzt angedachten Auftrennung zwischen HPC- und Gaming-Entwicklung gezwungen wäre. Schließlich sollen angeblich schon dieses Jahr erste Spieletitel mit RayTracing-Einsatz erscheinen, hat man bereits die 3D-Engines Northlight, Frostbite, Unity und Unreal an Bord. Ein so schneller praktischer Einsatz wäre allerdings überraschend, womöglich handelt es sich dabei dann eher nur um Demonstrationsobjekte, welche neben und unabhängig der "normalen" Grafikdarstellung existieren. Eine komplette Spieleentwicklung in Richtung selbst nur einer reinen RayTracing-Beleuchtung ist sicherlich nicht unterhalb von zwei Jahren zu machen – und setzt dann auch das Vertrauen darauf vorauf, beim Marktstart genügend entsprechend leistungfähige Hardware vorzufinden.

An dieser Stelle ist es allerdings auch gut möglich, das die reine Shader-Kraft der aktuellen AMD- und nVidia-Beschleuniger schon komplett ausreichend für erste RayTracing-Anwendungen ist – anderenfalls würde die Spieleentwickler sich kaum auf derart Experiemente einlassen. Derzeit soll der Anfang mit einzelnen RayTracing-Elementen gemacht werden, hierzu wurden Schattendarstellung, Reflexionen und Umgebungsverdeckung genannt. Der Vorteil dieses sanften Einstiegs dürfte sein, das diese Effekte dann eben auch auf heutigen Grafikchips anständig lauffähig sind – und einfach nur den Einstieg in die RayTracing-Welt ermöglichen. Mit zukünftigen Grafikchips und Spielen dürften dann die Anforderungen an die RayTracing-Rechenleistung massiv steigen – aber diesen Einstieg erst einmal hinzubekommen, wird der sicherlich schwierigste Part sein. In jedem Fall belebt man damit ein altes Thema, welches schon von einer Dekade an dieser Stelle betrachtet wurde, über die ganze Zeit hinweg jedoch immer nur auf den professionellen Bereich beschränkt blieb.

Heuer nun mit der weiterhin steigenden Rechenkraft neuer Grafik-Beschleuniger bei gleichzeitig nicht weiter steigenden PC-Systemanforderungen für neue Spieletitel sieht RayTracing als sinnvolle Lösung zur Verbratung von ungenutzter Rechenleistung aus – und man bekommt dafür ja gleichzeitig eine bessere Grafikqualität speziell an einer Stelle, welche derzeit vergleichsweise suboptimal gelöst ist. Die meisten heutigen Top-Titel sind ausreichend gut bei Texturen- und Animations-Qualität, oftmals ist inzwischen tatsächlich die Beleuchtung jener Problempunkt, welcher die gebotene Grafik als "unecht" oder "steril" erscheinen läßt. Mittels RayTracing-Einsatz kann 3D-Grafik einfach noch viel "plastischer" werden. So gesehen kann man dem ganzen durchaus mit einer gewissen freudigen Vorerwartung entgegenblicken – selbst wenn der beteiligte Entwickler Remedy sagt, das man noch weit davon entfernt ist, die Grafikqualität des vorstehend zu sehenden Demo-Videos in einem Computerspiel einzusetzen.

Für Microsoft bedeutet das ganze zudem eine exzellente Stärkung von DirectX 12 auf technologischer Ebene, nachdem DirectX schließlich mittels Vulkan eine keineswegs uninteressante Alternative bekommen hatte. Speziell nVidia versucht das ganze dann natürlich mit seiner eigenen Raytracing-Rendertechnik RTX (als Teil von Microsofts DXR) für sich zu nutzen – gerade dadurch, das RTX wohl ein Teil von nVidias GameWorks-Programm werden wird, damit seitens nVidia also wiederum eine Auftrennung nach den einzelnen Grafikchip-Entwicklern vorangetrieben wird. AMD wird allerdings an dieser Stelle nachlegen (und damit einen nVidia-Alleingang verhindern), laut der PC Games Hardware wird die Unterstützung von Microsofts DXR Teil eines kommenden Radeon-Treiber sein – selbst wenn man konkreteres an dieser Stelle sicherlich noch vermissen läßt. Abzuwarten bleibt daneben noch, wann die DirectX-Alternative Vulkan ähnliches aufbietet, normalerweise sollten viele Beteiligte durchaus an selbigem interessiert sein.

Nachtrag vom 22. März 2018

Die ComputerBase bringt zum Fall von DirectX 12 RayTracing (DXR) einige Klarstellungen zu den bislang bekannten Rahmendaten. So sollen – trotz das der GV100-Chip derzeit der einige native Beschleuniger von DXR ist – dessen Tensor-Cores nur für eine gewisse Nebenfunktion genutzt werden können, sprich nicht das entscheidende Element für DXR-Hardware darstellen. Entweder hat der GV100-Chip also noch andere Spezial-Hardware für DXR parat – oder aber es besteht eine kleine Chance darauf, das die Darstellung von GV100 als derzeitig einzigem nativen DXR-Beschleuniger nicht ganz korrekt ist, nVidia hier einfach nur seine neueste Volta-Architektur ins beste Licht rücken will. Interessanterweise gibt es zudem einen Fallback-Modus, mittels welchem DXR komplett mit den Shader-Einheiten gewöhnlicher Grafikchips berechnet werden kann. Jener Modus soll zwar langsam sein und ist daher eher nur für Entwickler interessant, welche die Funktionalität einfach nur austesten wollen – aber "langsam" ist natürlich relativ und hängt von der Leistungsfähigkeit des benutzten Beschleunigers sowie der Anzahl der angezeigten DXR-Elemente ab.


DirectX 12 RayTracing-Demo von Futuremark

DirectX 12 RayTracing-Demo "Project Spotlight" von Epic

Heise vermelden zudem zwei weitere RayTracing-Technikdemos: Im ersten Fall wurde die für TimeSpy verwendete DirectX-12-Engine bei Futuremark um einige RayTracing-Effekte erweitert (Reflexionen & Spiegelungen). Dies soll als Einstimmung auf eine noch in diesem Jahr erscheinende neue 3DMark-Version dienen, welcher dann auch einen expliziten RayTracing-Test mit sich bringen wird. Vermutet wird an dieser Stelle, das die Anforderungen dieses Tests nicht all zu hoch ausfallen – sprich, das auch der vorgenannte Fallback-Modus hierfür ausreichend zu sein könnte. Im zweiten Fall geht es um eine Technikdemo seitens Epic unter deren Unreal-4-Engine, mittels welcher eine nahezu videorealistische Star-Wars-Szene gerendert wurde. Jene läuft im Gegensatz zu Renderings für Kinofilme sogar schon in Echtzeit, benötigt dafür aber immerhin vier Stück Tesla V100. Verwendet wurde hierbei allerdings auch ein umfassenderes RayTracing-Beleuchtungmodell – was damit vor allem anzeigt, wohin es mit der Computergrafik gehen kann, sofern man es schafft, RayTracing zu einem bezahlbaren Aufwand an Soft- und Hardware zu integrieren.

Einen interessanten Punkt hat AMD gemäß der Berichterstattung von Golem dann noch hinzuzutragen: Für die Spieleentwickler kann RayTracing sogar erhebliche Arbeitsvereinfachungen mit sich bringen. Bislang verbrät die Spielbeleuchtung massiv an Arbeitszeit, viele Sachen werden hier nach wie vor von Hand optimiert, bis es dann wirklich passend aussieht. Mittels RayTracing in einer fortgeschrittenen Version (mit jetziger und demnächst kommender Hardware sicherlich noch nicht in Echtzeit erreichbar) würde man das ganze einfach per "BruteForce" respektive einem mathematischen Modell lösen – welches man dann einfach die Beleuchtung rechnen läßt, ohne vorher viel Detailarbeit hineinzustecken. Prinzipiell braucht dies dann keine Entwickler-Eingriffe mehr, würde die Beleuchtungs-Entwicklung also radikal einfacher ausfallen können. In der Praxis wird dies vielleicht nicht ganz so einfach wie derzeit dargestellt, dennoch ist hier ein erhebliches Einsparungspotential zugunsten der Spieleentwickler zu sehen – welche die frei werdenden Ressourcen dann an anderer Stelle zugunsten anderer Grafik-Teile verbraten können.

Nachtrag vom 23. März 2018

Als erstes Spiel mit realem Einsatz von "DirectX Raytracing" gilt das für den Herbst avisierte "Metro Exodus" – zu welchem es nunmehr auch noch eine entsprechende Video-Demonstration gibt. Laut der PC Games Hardware sind die Reaktionen hierauf allerdings eher denn lauwarm, der auf der Entwickler-Webseite zu sehende Screenshot würde wohl mehr Eindruck machen. Viele Betrachter können in dem Demo-Video keine echte Verbesserung durch RayTracing erkennen, teilweise kommt sogar der "Downgrading"-Vorwurf auf. Spielentwickler "4A Games" hat sich hiermit also eher selber geschlagen – und gleichzeitig indirekt einen wichtigen Punkt angesprochen: Denn es ist natürlich unsicher, ob RayTracing bei heutiger Hardware überhaupt zu einem sinnvollen, sprich die Bildqualität wirklich verbessernden Einsatz in realen Spielen kommen kann. Die bislang gezeigten Tech-Demos können halt nur die Möglichkeiten aufzeigen – nicht aber die Realität eines echten Spiels abbilden, wo jeder Effekt immer auch gegengecheckt wird gegen die Frage, ob der Optikgewinn den Performanceverlust sowie die dafür notwendige Arbeitszeit wert ist.

Realisiert wird in echten Spielen dann immer nur das, was sowohl bei Performanceverlust als auch Arbeitsaufwand tragbar ist – und insbesondere beim Punkt der Performance dürfte RayTracing so seine Probleme haben. Die Alternative des Herunterbrechens der Bildqualität auf ein bezüglich der Performance erträgliches Niveau kann dann allerdings in die Falle eines nur noch minimalen bzw. nicht mehr wirklich sichtbaren Optikgewinns führen – möglicherweise ist genau dies bei Metro Exodus passiert. Die derzeit geäußerte Kritik dürfte den Spieleentwicklern aber letztlich weiterhelfen zu erkennen, wo RayTracing (derzeit) Sinn macht – und wo nicht. Hinzu kommt natürlich immer auch noch der Punkt, das aller Anfang schwer ist und mit zukünftiger Hardware sich diese Probleme automatisch verbessern werden – aber ohne das ein Anfang gemacht wird, sich auch nichts bewegen kann. Aber man muß zumindest klar sagen, das RayTracing ein echtes Langfrist-Projekt ist, das also das Optik-Niveau der bislang gezeigten Tech-Demos noch lange Zeit nicht in echten Spielen erwartet werden darf.

Nachtrag vom 25. März 2018

Die GameZone berichtet über AMDs RayTracing-Ansatz in der Engine "ProRender" bzw. dem Entwickler-Paket "Radeon Rays 2.0". Beides bezieht sich allerdings nicht auf die angekündigte Treiber-Unterstützung für RayTracing auf aktueller AMD-Hardware, sondern stellt "nur" Entwicklerwerkzeuge dar – wie es selbige inzwischen sogar einige zum Thema "RayTracing" gibt. Relevant ist das ganze, weil jene Entwicklerwerkzeuge unter Vulkan laufen – womit dann bestätigt wäre, das auch die alternative LowLevel-API über diese Fähigkeit verfügen wird. Damit erwirbt sich Microsoft ergo mittels seines "DirectX RayTracing" (DXR) keinen technologischen Vorsprung, sondern beide LowLevel-APIs werden in diese Richtung hin nutzbar sein. Interessanterweise sollen sogar dieses Jahr noch erste Spiele erscheinen, welche diese AMD/Vulkan-Möglichkeit nutzen – jene müssten dann ergo unter der Vulkan-API erscheinen, was im Sinne eines gesunden Wettbewerbs der Grafik-APIs nur zu begrüßen wäre. Wie üblich bei AMD, sind diese Tools frei mit jeglicher Hardware nutzbar, nicht also wie nVidias RayTracing-Ansatz "RTX" auf das GameWorks-Programm und damit nVidia-eigene Hardware beschränkt. Allenfalls die intensive Nutzung von Asynchronous Compute bei AMDs RayTracing-Ansatz dürfte anderer Hardware nicht so schmecken – wobei dies dann eher den Anlaß ergeben sollte, bei der Asynchronous-Compute-Performance entsprechend nachzulegen.