COMPTOIR
register

×

Fonctionnement comparé de la rastérisation et du lancer de rayons

En cabine • Minecraft version RTX
Fonctionnement comparé de la rastérisation et du lancer de rayons
Bounding Volume Hierarchy
Les apports de Turing pour le Ray Tracing
DLSS
DLSS 2.0

• Path Tracing

Comme nous l'évoquions en débutant ce dossier, Minecraft se met à la mode du lancer de rayons, version Path Tracing plus précisément. Avant de préciser ce qu'il en est de ce dernier, un petit rappel concernant le Ray Tracing (davantage usité que la dénomination française). Son fonctionnement est quelque peu inversé (schéma de droite ci-dessous) par rapport à la traditionnelle rastérisation qui convertit une image vectorielle en matricielle (à gauche).

 

Fonctionnement comparé de la rastérisation et du lancer de rayons [cliquer pour agrandir]

 

Le lancer de rayons reconstitue lui, une image virtuelle en suivant depuis la vue utilisateur/caméra, le cheminement des rayons qui traversent le plan 2D de l'image jusqu'aux sources lumineuses, en prenant en compte les principes optiques de réflexions, réfractions ou blocage (conduisant aux ombres) de la lumière. L'avantage est d'obtenir un résultat pouvant être photo-réaliste, expliquant son adoption massive dans le cinéma. La contrepartie est une somme de calculs colossale, ce qui n'est pas forcément handicapant pour un rendu destiné à être inclus dans un film en post-production (précalculé), mais prohibitif pour une exécution en temps réel dans un jeu vidéo...

 

La réponse apportée par NVIDIA à ce dilemme est pour le moins originale, mais pragmatique : un rendu hybride, conservant une base rastérisation là où cette dernière reste pertinente (Z-buffer, etc.), mais utilisant le Ray Tracing pour les tâches qui donneront de meilleurs résultats avec cette technique (éclairage, etc.). Bien sûr, rien n'empêche de réaliser l'intégralité de la scène avec l'une ou l'autre technique, mais avec la plupart des compromis usuels de ces dernières (qualité ou performance).

 

Pipeline graphique pour rastérisation et Ray Tracing

 

Les pipelines de rendu dédiés aux 2 méthodes peuvent travailler de concert, ce qui est à la base du rendu hybride. La somme des calculs à réaliser en Ray Tracing est étroitement liée à la complexité de la scène (définition, nombre d'objets, etc.), mais aussi à la qualité de rendu souhaité. Cette dernière dépend en grande partie du nombre de rayons diffusés par pixel. NVIDIA s'est donc attelé à en limiter le nombre tout en préservant la qualité visuelle. Il use pour cela de nombreux filtres de "débruitage" (denoising), permettant d'améliorer significativement une image, tout en conservant un nombre de rayons compatibles avec l'exécution en temps réel.

 

Filtre de débruitage

 

Un autre axe de réduction du nombre de calculs, est l'utilisation de la technique Bounding Volume Hierarchy ou BVH. Kesako ? En fait, une part importante de ces derniers est dédiée à "déterminer" le triangle (des objets 3D) frappé par un rayon, afin de déterminer la trajectoire de ce dernier. C'est là qu'intervient ce fameux BVH. En pratique, cet algorithme teste si le rayon touche une "grande" boite de forme géométrique simple (les tests d'intersections sont ainsi "aisés" à réaliser) qui englobe l'objet ou une partie de ce dernier. Si ce n'est pas le cas, il passe à une autre grande boite, si par contre le rayon touche la boite, il effectue une recherche plus fine à l'intérieur de cette dernière via des boites plus petites et ainsi de suite jusqu'à isoler le triangle d'intersection.

 

Bounding Volume Hierarchy [cliquer pour agrandir]

 

Les RT Core entrent alors en scène : leur objectif est de fournir une accélération matérielle au BVH. NVIDIA indique que sur une architecture ne disposant pas de circuit spécialisé, ces opérations coûteraient des milliers de cycles d'instructions supplémentaires par rayon.

 

Les apports de Turing pour le Ray Tracing [cliquer pour agrandir]

 

Voilà rapidement résumé le Ray Tracing tel qu'implémenté au sein de l'architecture Turing du caméléon, qui rend possible sa mise en œuvre pour les jeux, au sein des derniers GPU des verts. Nous verrons ce qu'il en sera de l'approche d'AMD à ce sujet, mais un brevet déposé par ce dernier semble étayer l'hypothèse que les rouges ont opté eux-aussi pour l'accélération matérielle du BVH. Précisons également que cette tambouille interne des constructeurs sera transparente pour les développeurs qui utiliserons l'API DX12 Ultimate commune aux PC et Xbox série X, ou Vulkan RT.

 

Et le Path Tracing alors ? Eh bien c'est toujours du Ray Tracing, toutefois vous l'aurez compris en lisant les lignes précédentes, ce dernier du fait de sa gourmandise, impose d'en faire un usage parcimonieux pour conserver un débit d'images par seconde suffisant. Lors des premières implémentations du RT au sein de jeux, les développeurs ont la plupart du temps limité son utilisation à un certain nombre d'effets (calcul des ombres pour certains, réflexions pour d'autres, etc.), ce qui est possible du fait de l'approche flexible/hybride de Turing.

 

Le Path Tracing de son côté regroupe tous ces différents aspects permettant la gestion de l'illumination globale d'une scène via un rendu RT et pas juste certains effets. Pour ce faire, des rayons sont lancés de manière aléatoire depuis la caméra jusqu'à constitution complète de la scène. Du fait de son échantillonnage aléatoire, le Path Tracing génère un bruit (grain) altérant la qualité du rendu. Pour contrebalancer cet effet indésirable, une solution consiste à recombiner plusieurs images successives (à l'image de ce qui est fait pour un filtre antialiasing temporel par exemple) afin d'éliminer ce grain, comme illustré ci-dessous. 

 

Débruitage

 

La charge de calcul induite par le Path Tracing est, vous l'aurez compris, bien plus lourde qu'un simple ajout de réflexions, ce qui explique que seuls des jeux avec un moteur 3D "léger" pour le hardware actuel, soient en capacité d'accepter une telle sollicitation avec des performances honorables en haute définition. A ce jour, Quake II RTX en était un représentant, Minecraft le rejoint avec cette beta.

 

Les moteurs 3D les plus performants ne permettent pas encore d'accepter une telle gestion de l'éclairage, mais le mouvement est en marche pour un pas supplémentaire au niveau du réalisme des scènes 3D. Le caméléon a de plus sorti un atout supplémentaire de sa manche, afin d'augmenter siginificativement les performances, au prix de concessions visuelles tout à fait acceptables, comme nous allons le voir à présent.   

 

• Deep Learning Super-Sampling 2.0

Là-aussi, commençons par un petit rappel du mode de fonctionnement de cette technologie NVIDIA, permettant selon son créateur d'offrir des performances en nette hausse, pour une qualité visuelle équivalente à celle atteinte avec un TAA classique. Pour ce faire, le caméléon utilise une build d'un jeu fourni par les développeurs et procède au rendu de dizaines de milliers d'images avec une qualité visuelle parfaite ou presque (64 échantillons par pixel), collectant ainsi le résultat de sortie et les données d'entrée brutes (images en basse résolution et aliasées) qui vont pouvoir être utilisés lors de l'opération d'apprentissage profond (Deep Learning) à venir.

 

Un réseau de neurones artificiels (de type auto-encodeur convolutif) est ensuite entraîné à obtenir cette qualité de sortie avec ces données d'entrée, au moyen de méthodes fortement matheuses (back propagation), ce qui lui permet "d'apprendre" les spécificités propres à ces images. Il résulte de cet apprentissage un DNN model (Deep Neural Network signifie "réseau de neurones profond") capable d'imiter le comportement observé sur l'échantillon utilisé lors de l'apprentissage, et ce pour un coût bien moindre que la technique originelle. Comment ? Par le biais des Tensor Cores, qui utilisent alors le DNN model sur l'image brute aliasée de définition plus faible, pour infèrer en temps réel le rendu anti-aliasé à la définition d'affichage requise. L'inférence est friande des calculs en faible précision où les Tensors Cores excellent.

 

DLSS [cliquer pour agrandir]

 

Voilà pour la théorie, mais à l'exception notable du tout premier jeu proposant cette fonctionnalité (FFXV), la plupart des réalisations suivantes ont été décevantes avec un rendu souvent flou, comme nous l'indiquions ici ou par exemple, Battlefield V détenant le pompon à ce niveau. Toutefois, les verts n'ont pas chômé depuis ces premiers essais largement perfectibles, et après une étape intermédiaire encourageante,  la version 2.0 a revu en profondeur l'auto-encodeur convolutif, mais ce n'est pas tout.

 

Ainsi, la notion de Temporal Feedback a également été ajoutée, comme illustré ci-dessous. Derrière cette dénomination, se cache l'intégration des vecteurs de mouvement, aux données d'entrée collectées en basse résolution. Ceux-ci sont ensuite appliqués à la précédente image de sortie (haute qualité), afin d'estimer plus précisément quelle sera l'apparence de la prochaine. Cela permet de rendre des images plus nettes (au-revoir le flou) tout en améliorant la stabilité d'une image à la suivante.

 

DLSS 2.0 [cliquer pour agrandir]

 

Un mot supplémentaire concernant l'auto-encodeur : ce dernier est à présent commun à tous les jeux (facilitant et accélérant ainsi son intégration au processus de création). Toutefois, il est toujours nécessaire de générer (via apprentissage profond ou Deep Learning dans la langue de Shakespeare) un DNN Model spécifique à chaque jeu par le biais de ce réseau de neurones.

 

A noter également que cette seconde itération de DLSS, permet de choisir 3 niveaux de qualité afin de laisser le choix à l'utilisateur : Performance, Équilibré ou Qualité. En pratique, il s'agit de faire varier la définition de rendu avant d'inférer les images qui seront affichées. Control dans sa dernière version propose par exemple pour un affichage en UHD, les valeurs ci-dessous :

 

DLSS CONTROL
Définition dU RENDUDéfinition d'affichage (inférée)ratio Pixels calculés
Performance 1720 x 720 3840 x 2160 15 %
Equilibré 1995 x 835 3840 x 2160 20 %
Qualité 2296 x 960 3840 x 2160 26,6 %

 

On comprend facilement l'intérêt de la technologie, mariant les gains de performance liés à l'upscaling, tout en supprimant la plupart des artefacts visuels qui en découlent par le biais de l'IA. Minecraft intègre bien entendu cette version 2.0 du DLSS, mais du fait de son statut Beta, certaines options ne sont pas encore accessibles. C'est le cas de la qualité qui est fixée pour l'heure au niveau maximal en 1080P, équilibré en 1440P et performance en 2160P.



Un poil avant ?

Comment Mindfactory a vendu CPU et GPU ?

Un peu plus tard ...

SilentiumPC annonce sa série Spartan 4

Les 14 ragots
Les ragots sont actuellement
ouverts à tous, c'est open bar !
par Un ragoteur qui draille en Île-de-France, le Jeudi 07 Mai 2020 à 10h09  
par Pascal M., le Mercredi 06 Mai 2020 à 15h11
On clos le HS svp pour se concentrer sur le sujet
Désolé pour le HS ! Je trouve que c'est un sujet qui mérite d'être expliqué et discuté, mais il vaudrait mieux effectivement faire ça dans un sujet dédié.

Pour en revenir à l'article, c'est une lecture intéressante, je vais juste la page 2 qui à l'air bien fournie pour une lecture ultérieure avec plus de temps pour la digérer.

Au niveau des performances, le RTX fait visiblement des gros dégâts pour un jeu qui tournait pas si mal que ça sur mon EEE-PC de l'époque.
Je suppose donc que les traitements spécifiques RTX sont super lourds sur le temps de création de chaque image par rapport au jeu traditionnel.
Est-ce qu'il est possible de réduire le nombre de rayons pour améliorer les performances tout en conservant un peu des ajouts RTX ? Il me semble avoir lu que certains jeux proposent un réglage plus fin que on/off.

En voyant le titre, je me disais que j'aurai aimé voir les performances sur les cartes Pascal pour voir ce que ça donne avec le RTX sans accélération matérielle, mais vu les perfs limitées de la 2080Ti finalement c'est pas la peine
par Gros, le Mercredi 06 Mai 2020 à 21h28  
J'ai testé par pure curiosité geek la béta minecraft RTX sur mon pc à base de ryzen 3600X et de GTX2070 super, en 1440p. On peut dire que c'est en effet vraiment plus joli, mais au prix d'une perte monstrueuse de performances. Comme je préfère privilégier la distance d'affichage, j'y ai renoncé. De toutes façons j'y joue quasi exclusivement avec mes mômes en LAN, et comme c'est la seule machine de la maison équipée en RTX, on joue sur des maps normales (et pour le coup l'immersion ne vient pas des graphismes sur ce jeu).
D'ailleurs même la version de base avec les réglages par défaut fait ramer notre vieux portable à base de i5 4500U et GTX 850m, pour confirmer ce que dit Thibaud.

On verra bien si les rumeurs se confirment pour les specs des GTX3xxx si elles permettent autre chose que des petites touches de ray tracing par ci part là (seul exemple que j'ai pratiqué : Modern Warfare (2019), c'est discret mais sympa à certains moments nocturnes de la campagne).
par Pascal M., le Mercredi 06 Mai 2020 à 15h11  
par Un ragoteur qui draille en Île-de-France, le Mercredi 06 Mai 2020 à 14h27
Il me semble que c'est une obligation légale.

Ce serait possible d'ajouter le nom du sponsor pour un peu plus de transparence ? Je suppose que c'est Nvidia ou MSI ?
C'est une suggestion légale on va dire, vu le flou artistique autour de cette notion. Pour une majorité des publications FR orientées hardware, peu s'embarrassent de ce genre de détail, comme par exemple ici

Et puis les définitions sont propres à chacun: si nous considérons parrainé comme étant le relais d'une offre commerciale viable, sponsorisé comme étant une proposition de thématique précise avec ou sans placement produit (c'est le cas ici), ou publi rédactionnel comme étant de la publicité honteuse pure et dure quitte à écrire n'importe quoi, bien des blogs, influenceurs et même médias sont clients au publi rédactionnel dont il ont fait tout ou parti de leur fond de commerce, souvent non signalé.

Pour notre part conformément à nos engagements moraux, nous refusons tout publiredac et en cas de sponso dont vous avez le premier jet ici, produisons uniquement du contenu que nous maîtrisons. On clos le HS svp pour se concentrer sur le sujet, puisque nous ne sommes pas ici pour survendre le sujet mais plutôt y apporter une critique explicative
par Un ragoteur qui draille en Île-de-France, le Mercredi 06 Mai 2020 à 14h27  
par Un ragoteur Gaulois d'Occitanie, le Mardi 05 Mai 2020 à 17h58
C'est honnête de votre part de stipuler que c'est un article sponsorisé, merci.
Il me semble que c'est une obligation légale.

Ce serait possible d'ajouter le nom du sponsor pour un peu plus de transparence ? Je suppose que c'est Nvidia ou MSI ?
par Unragoteursansespace de Bretagne, le Mercredi 06 Mai 2020 à 10h48  
par Scrabble, le Mardi 05 Mai 2020 à 20h32
Le dlss, c'est un peu comme de la compression vidéo. Ça doit influer sur la qualité d'image, quand même.
Machin à raison ( enfin presque )
Y'a toujours une perte mais c'est de moins en moins mauvais
La techno s'est pas mal améliorée depuis son lancement
par Un médecin des ragots d'Occitanie, le Mardi 05 Mai 2020 à 23h57  
par Xeres, le Mardi 05 Mai 2020 à 22h41
J'ai testé Control, je trouve que le Ray Tracing sublime le jeu, c'est comme si on passait de certains paramètres de moyen à ultra + ajout d'effets inexistants auparavant.
Concernant le DLSS 2.0, ça permet de profiter du RT en contrepartie d'une baisse visuelle général. Sur des screenshots on ne fait pas la différence mais en jeu on sent légèrement la perte de détail. Vivement la 3.0 et la nouvelle génération sûrement plus apte à gérer le RT sans se casser la gueule niveau performance.
le DLSS 1.0 oui mais pas le DLSS 2 franchement. Control ça dépend quand tu l'a fait car le DLSS 2 est très recent fin mars de mémoire
par Xeres, le Mardi 05 Mai 2020 à 22h41  
J'ai testé Control, je trouve que le Ray Tracing sublime le jeu, c'est comme si on passait de certains paramètres de moyen à ultra + ajout d'effets inexistants auparavant.
Concernant le DLSS 2.0, ça permet de profiter du RT en contrepartie d'une baisse visuelle général. Sur des screenshots on ne fait pas la différence mais en jeu on sent légèrement la perte de détail. Vivement la 3.0 et la nouvelle génération sûrement plus apte à gérer le RT sans se casser la gueule niveau performance.
par Thibaut G., le Mardi 05 Mai 2020 à 20h43  
par Scrabble, le Mardi 05 Mai 2020 à 20h32
Le dlss, c'est un peu comme de la compression vidéo. Ça doit influer sur la qualité d'image, quand même.
Si tu ne prends pas la peine d approfondir plus que ca après un dossier expliqué comme ça, je doute qu'il y ait un échange riche. Quand tu dis ça doit alors qu avec le dlss 2 ce n'est plus ça, on ne pourra pas avancer. Sorry
par Scrabble, le Mardi 05 Mai 2020 à 20h32  
par Thibaut G., le Mardi 05 Mai 2020 à 20h02
Le dlss c'est pour décorer ?
Le dlss, c'est un peu comme de la compression vidéo. Ça doit influer sur la qualité d'image, quand même.
par Thibaut G., le Mardi 05 Mai 2020 à 20h15  
par Gohan, le Mardi 05 Mai 2020 à 20h05
Sans remettre en question la qualité indéniable de l'article sur les aspects techniques de cette technologie, il faut prendre un peu de recule. Quand je vois que l'on parle d'une 2060 ou d'une 2080 pour faire tourner Minecraft c'est que l'on a perdu de vue la philosophie originelle de ce titre.
C'est comme dire qu'il faut du SMAA parce que c'est trop cubique (ceci dit, c'est qui est fait avec le DLSS).
Le chapitre 2 à lui seul aurait peut-être été suffisant.
Minecraft, ce n'est pas parce qu'il a l'air simpliste qu'il ne pompe pas de ressource. Si tu mets max de tronçons, ça a beau être simpliste, ça mouline à une 10aine d'ips. Après, rien ne t'empêche de le faire tourner tel quel, mais y ajouter RTX et DLSS, eh bien ça lui donne un autre charme franchement. Certes tout n'est pas parfait, faut se contenter des seules maps NV actuellement, ça ne marche pas sur toutes les maps, mais tous les devs du jeu peuvent en faire. C'est encore en bêta.
Par contre une RTX 2060, c'est quand même pas une tuerie financière, avant la crise en on trouvait à 320€, c'est quand même moins cher que ce que bien des gens ont payé des RX 580 durant la période minage. Pour jouer à Minecraft, on est pas obligé d'y jouer avec une GTX 1650 ou une RX 560 juste parce qu'il apparait simpliste
par Gohan, le Mardi 05 Mai 2020 à 20h05  
Sans remettre en question la qualité indéniable de l'article sur les aspects techniques de cette technologie, il faut prendre un peu de recule. Quand je vois que l'on parle d'une 2060 ou d'une 2080 pour faire tourner Minecraft c'est que l'on a perdu de vue la philosophie originelle de ce titre.
C'est comme dire qu'il faut du SMAA parce que c'est trop cubique (ceci dit, c'est qui est fait avec le DLSS).
Le chapitre 2 à lui seul aurait peut-être été suffisant.
par Thibaut G., le Mardi 05 Mai 2020 à 20h02  
par Scrabble, le Mardi 05 Mai 2020 à 19h48
Le RTX, ça sera bien avec la prochaine génération de CG Nvidia, 40 fps en QHD avec une CG à 1400 €, non.
Le dlss c'est pour décorer ?