Technologies

Technologie d'illumination globale par voxel
divider

Technologie VXGI

La technologie d’illumination globale par voxel (ou VXGI, de l’anglais "Voxel Global Illumination") est une innovation NVIDIA qui offre des effets d’éclairage, de reflets et de shading d’un réalisme incroyable pour les jeux PC et les moteurs de jeu de nouvelle génération.

La modélisation de la lumière est l’un des principaux défis de calcul en matière d’informatique visuelle. Notre nouvelle architecture Maxwell nous permet aujourd’hui de faire un véritable bond en avant en permettant aux GPU de simuler les effets de lumière de manière quasi photoréaliste et en temps réel.

En conditions réelles, les objets de notre quotidien sont éclairés par une combinaison de lumière directe (formée par des photons éclairant un objet à partir d’une source lumineuse) et de lumière indirecte (formée par des photons issus d’une source lumineuse et se reflétant sur un objet avant d’en éclairer un autre, illuminant ainsi ce dernier de manière indirecte). L’illumination globale est une technique d’affichage qui permet de simuler ces effets de lumière en temps réel. Sans lumière indirecte, les scènes d’infographie paraissent souvent imparfaites et artificielles. Cependant, et au contraire de la lumière directe, les effets de lumière indirecte sont extrêmement complexes et demandent une grande puissance de calcul.

 

Exemple de scène utilisant exclusivement la lumière directe

Exemple de scène utilisant exclusivement la lumière directe.

 

Cette scène a été générée avec la technologie NVIDIA VXGI

Exemple basé sur un modèle d’illumination globale. Vous pouvez apercevoir des effets de lumière indirecte et des reflets spéculaires sur le sol.

 

Les techniques d’éclairage par illumination globale étant extrêmement gourmandes en ressources de calcul, notamment pour les scènes les plus détaillées, elles étaient jusqu’alors souvent réservées à la création d’images de synthèse pour l’industrie cinématographique via des fermes de rendu hors ligne. Bien que certains systèmes d’illumination globale soient déjà utilisés dans la plupart des jeux vidéo récents, leur implémentation passe encore par des modèles d’éclairage précalculés. Ces techniques simplifiées sont massivement utilisées pour ne pas impacter irrémédiablement les performances graphiques. Malgré tout, elles requièrent des ressources visuelles additionnelles car les effets de lumière désirés doivent être calculés et générés en amont. Les modèles d’éclairage précalculés n’étant pas dynamiques, il s’avère souvent difficile ou impossible d’actualiser les sources de lumière indirecte lors qu’un changement intervient en cours de partie, comme l’ajout d’une source lumineuse ou la modification d’un objet de la scène. En effet, même si les systèmes d’éclairage précalculés peuvent parfaitement modéliser les objets statiques d’une scène, ils ne peuvent pas s’appliquer correctement aux personnages animés ou aux objets mobiles.

En 2011, les ingénieurs de NVIDIA ont développé et testé une approche innovante et rapide permettant de simuler l’illumination globale en temps réel via le GPU. Cette nouvelle technologie d’illumination globale s’appuie sur une grille de voxels pour enregistrer chaque scène et ses propriétés lumineuses, ainsi que sur un nouveau système de tracé de voxels par cone tracing afin de collecter la lumière indirecte à partir de la grille d’origine. Cyril Crassin de NVIDIA décrit cette technique dans ce dossier et dans une vidéo de la GTC 2012 disponible à l’adresse suivante. La démo technique Elemental d’Epic, réalisée en 2012 avec l’Unreal Engine 4, utilisait une technique similaire.

 

Les incroyables effets visuels de la démo Elemental d’Epic, basée sur l’Unreal Engine 4, utilisent la technique du tracé de voxels par cone tracing

Les incroyables effets visuels de la démo Elemental d’Epic, basée sur l’Unreal Engine 4, utilisent la technique du tracé de voxels par cone tracing.

 

Ces trois dernières années, NVIDIA a fait évoluer cette technologie et a développé l'illumination globale par voxel, ou VXGI, qui combine des algorithmes logiciels avancés et les capacités d’accélération matérielle de l’architecture NVIDIA Maxwell.

La boîte de Cornell

En 1984, des chercheurs de l’Université de Cornell (États-Unis) ont développé un ensemble géométrique permettant de générer très simplement des images de synthèse. Leur objectif consistait à utiliser une scène simplifiée qui leur permettrait de comparer une image d'infographie à une photographie réelle leur servant de support d'étalonnage.

 

Image générée avec la technologie de rendu NVIDIA iray

 

TL’image ci-dessus a été générée avec la technologie de pointe NVIDIA iray, qui utilise la puissance combinée de plusieurs GPU tournant en parallèle dans le Cloud pour afficher des rendus photoréalistes en temps réel. Cette image virtuelle d’une boîte de Cornell est très proche de son apparence réelle.

L’objectif de la VXGI est de parvenir à afficher cet ensemble géométrique en temps réel. Comme un rendu intégral par ray tracing n’est pas envisageable en termes de ressources de calcul, il convient alors de simplifier le modèle.

 

Vue voxel par opacité de la même scène

 

L’image affichée ci-dessus présente une vue en voxels par opacité de la même scène. Chaque cube comprend une modélisation brute de la structure géométrique sous-jacente permettant d’accélérer le calcul des valeurs de lumière.

 

Il est possible de calculer la couleur et l’intensité de la lumière qui touche les voxels en utilisant des techniques rapides d’illumination directe

 

C’est cette vue émissive par voxels qui fait toute la différence. Imaginez que chaque cube (ou voxel) soit éclairé par les sources de lumière directe de la scène. Il serait alors possible de connaître la couleur et l’intensité de la lumière qui touche les voxels en utilisant des techniques rapides d’illumination directe. Mais ce n’est pas tout : les voxels ainsi éclairés vont pouvoir agir comme des sources lumineuses indépendantes générant de la lumière indirecte.

 

Il est possible de visualiser la lumière diffusée indirectement à partir des surfaces reflétant la lumière directe d’origine

 

Les couleurs de cette image peuvent prêter à confusion. Commençons par étudier les murs. Le mur qui était rouge se pare maintenant d’une lueur verte, et inversement. Les deux murs sont donc maintenant drapés d’une couleur opposée à leur couleur d’origine, car chaque mur illumine l’autre depuis chaque côté de la pièce. Le mur rouge illumine également la boule placée devant lui, et ce phénomène de diffusion lumineuse se produit entre chaque objet de la scène. Nous constatons donc qu’il est possible de visualiser la lumière diffusée indirectement à partir des surfaces reflétant la lumière directe d’origine, comme si nous nous trouvions en conditions réelles.

 

Toutes les sources de lumière se combinent dans un modèle d’illumination globale au réalisme avancé

 

Quand toutes les sources de lumière se combinent, nous pouvons donc générer des scènes incroyablement réalistes. Et grâce à la technologie VXGI d’illumination globale par voxel, nous pouvons faire tout ceci en temps réel.