[Jeux vidéo] Ce que le DirectX Raytracing de Microsoft signifie pour les jeux vidéo

Si vous suivez la technologie des films d’animation, nous avons toujours su où nous voulions en arriver. Nos exigences ne sont pas grandes : nous voulons simplement une interprétation parfaite du monde qui nous entoure ou du moins la possibilité de recréer une telle chose. La théorie derrière la recréation d’une telle chose existe depuis des décennies et cela s’appelle le raytracing.

A un haut niveau, imaginez le modèle de l’infographie comme une tentative de recréer le monde. Les photons rebondissent autour, émis par des sources de lumière comme le soleil, les reflets d’autres objets, les ampoules, nos moniteurs, etc. Nos yeux sont tournés dans une certaine direction et ce que nous « voyons » est effectivement la collection de tous les photons qui frappent les récepteurs dans nos globes oculaires et notre cerveau interprète cela comme une image.

Le rendu graphique basé sur la physique pourrait simplifier et améliorer l’apparence des jeux.

Le problème, c’est que tout cela se produit à un niveau analogique : les photons sont toujours émis mais pas nécessairement à une vitesse uniforme et à des longueurs d’onde différentes. Selon une estimation approximative, un milliard de photons atteignent vos yeux chaque seconde tandis qu’une seule ampoule dans une pièce émet quelque part de l’ordre de 8×1018 photons par seconde. Simuler chaque photon rebondissant dans une pièce serait peu pratique. Mais que se passerait-il si nous simulions simplement les photons qui frappent nos yeux ? Un milliard de photons par seconde pourrait peut être être une quantité gérable.

Et c’est l’essence même du raytracing. Commencez par l’écran de votre ordinateur, en utilisant une résolution de 1920×1080 pixels comme exemple. Maintenant, faites une projection inversée d’un chemin fait par chacun de ces pixels dans le modèle d’un environnement, comme un bureau, une maison, etc. Faites rebondir un tas de ces trajectoires (rayons) et vous obtenez une assez bonne approximation de ce à quoi devrait ressembler une vue réelle et physiquement modélisée de l’environnement.

Si vous avez déjà utilisé un benchmark, vous devriez avoir une bonne idée du temps que prennent tous ces calculs : environ 60 secondes sur un CPU puissant pour rendre une seule image en résolution 1280×720. Dans le monde professionnel du cinéma, le rendu des images qui entrent dans les derniers films d’animation des plus grands studios peut être beaucoup plus complexe : affichages haute résolution, textures à plus haute résolution, et un modèle beaucoup plus détaillé du monde rendu. Le rendu de chaque image d’un tel film prend souvent plusieurs heures.

Jouer à des jeux nécessitant des traitements de 10 heures par image ne serait pas très enthousiasmant ni amusant : nous avons besoin d’un moyen de tout approximer pour le faire fonctionner en temps réel. Ce processus est connu sous le nom de tramage et c’est ainsi que notre carte graphique fonctionne dans les jeux. Ça marche plutôt bien et ça semble de mieux en mieux années après années. Mais le tramage a commencé à utiliser des techniques qui sont assez complexes, y compris la réflexion de l’espace de l’écran, l’éclairage global, la cartographie de l’environnement et bien plus encore.

La difficulté avec toutes les techniques de tramage est qu’elles demandent aussi beaucoup de temps, sauf ici où c’est souvent le temps des artistes, des concepteurs de niveaux et des développeurs de logiciels. Si l’objectif final est toujours d’obtenir la meilleure approximation possible de la façon dont les choses se présentent dans le monde réel, nous allons finir par revenir au raytracing sous une forme ou une autre.

Microsoft a annoncé la prochaine génération de son API DirectX, appelée DirectX Raytracing (DXR). La nouvelle API est destinée à combler le fossé entre le tramage et le raytracing, permettant ainsi l’apparition de nouveaux rendus de plus en plus réalistes. Vous pouvez lire les détails sur le blog DirectX de Microsoft (article en anglais), mais nous allons parler de ce que cela signifie pour les jeux dans la pratique.

Tout d’abord, le DXR ne nécessite pas modifier radicalement votre pc gamer. Les charges de travail DXR peuvent s’exécuter sur les moteurs DirectX existants, car il s’agit fondamentalement d’une charge de calcul. Les mêmes capacités qui permettent à vos GPU d’être utilisés pour des choses comme l’extraction de cryptocurrencies peuvent être utilisées pour des choses qui traitent directement des jeux. À long terme, nos puces graphiques deviennent de plus en plus polyvalentes et programmables. Toutes les unités fonctionnelles fixes sont remplacées par des programmes de shaders matériels d’usage général.

Qu’est-ce que cela signifie pour les jeux ?

Au début, ne vous attendez pas à ce que les jeux passent soudainement au raytracing, nous sommes encore loin d’être dans la mise en oeuvre. Cependant, le DXR permettra de nouvelles techniques de rendu qui devraient améliorer la qualité de l’image et, avec le temps, des éléments tels que les réflexions de l’espace écran et l’éclairage global réel devraient passer à la nouvelle API. Plus loin encore, le raytracing pourrait remplacer le rasterization comme méthode standard pour générer des mondes 3D, bien que nous ayons besoin de nouvelles technologies d’affichage avant de laisser le tramage complètement dans le passé.

La bonne nouvelle, c’est que le DXR fonctionnera sur le matériel existant et vous n’aurez donc pas à abandonner votre dernière carte graphique RX Vega ou GTX 1080 juste pour profiter du DXR. Cependant, le futur matériel sera construit pour mieux gérer les nouvelles possibilités et Nvidia parle déjà de la façon dont son architecture Volta peut permettre de meilleures performances avec le DXR. Nvidia fait déjà un pas de plus avec le RTX, qui est construit sur DXR mais inclut des crochets supplémentaires qui nécessitent du matériel Volta.

AMD, pour sa part, a publié la déclaration suivante : « AMD collabore avec Microsoft pour aider à définir, affiner et soutenir l’avenir de DirectX12 et du ray tracing. AMD reste à la pointe de l’innovation en matière de nouveau modèle de programmation et d’interface de programmation d’application (API) basée sur une base système tournée vers l’avenir pour la programmation graphique. Nous sommes impatients de discuter avec les développeurs de jeux de leurs idées et de leurs commentaires sur les techniques de ray tracing sur PC pour la qualité de l’image, les possibilités d’effets et les performances. »

Ce qui est génial avec le DXR, c’est que le raytracing n’est pas une idée folle que les développeurs de jeux ne veulent pas et n’utiliseront jamais. Si vous allez voir un développeur de moteur 3D et lui dites : « Nous avons ce nouvel outil qui vous permet de combiner plusieurs des avantages du raytracing dans un moteur de jeu traditionnel, tout en faisant tourner le tout en temps réel à 60 images par seconde (ou plus) », chacun d’entre eux serait (ou du moins devrait) être intéressé. Et Microsoft annonce déjà le soutien de plusieurs grands noms de l’édition de jeux vidéo.

Si nous arrivons au point où tout sera entièrement simulé avec le raytracing, les choses seront aussi quelque peu simplifiées du point de vue du développeur. Au lieu de passer du temps et des ressources à générer des shadowmaps et à calculer divers hacks pour simuler l’aspect des choses, le raytracing peut simplement faire tout le travail. Ainsi, les artistes peuvent tous se concentrer sur la création d’un modèle de leur monde et laisser le moteur faire le rendu. C’est l’idée, en tout cas.