Magazine High tech

Traçage de chemin vs traçage de rayons, expliqué

Publié le 01 décembre 2023 par Zaebos @MetatroneFR

Toutes les quelques années, il semble qu’une nouvelle technologie étonnante fasse son apparition, promettant de rendre les jeux encore plus réalistes. Au fil des décennies, nous avons eu les shaders, la tessellation, le shadow mapping, le ray tracing – et maintenant il y a un nouveau venu : le path tracing.

Donc, si vous recherchez des informations détaillées sur ce dernier développement en matière de technologie graphique, vous êtes au bon endroit. Plongeons dans le monde du rendu et suivons un chemin de lumière et d’apprentissage.

Qu’est-ce que le traçage de chemin ?

La réponse courte et douce à cette question est… »le traçage de chemin n’est qu’un lancer de rayons » Les équations de modélisation du comportement de la lumière sont les mêmes, l’utilisation de structures de données pour accélérer la recherche d’interactions rayon-triangle est également la même, et les GPU modernes utilisent les mêmes unités pour accélérer le processus. C’est également très informatique. intensif.

Mais attendez. Si c’est vraiment la même chose, pourquoi le path tracing a-t-il un nom différent et quel avantage offre-t-il aux programmeurs de jeux ? Le traçage de chemin diffère du traçage de rayons dans la mesure où, au lieu de suivre de nombreux rayons, tout au long d’une scène entière, l’algorithme ne trace que le chemin le plus probable pour la lumière.

Le traçage de chemin diffère du traçage de rayons dans la mesure où, au lieu de suivre de nombreux rayons, tout au long d’une scène entière, l’algorithme ne trace que le chemin le plus probable pour la lumière.

Nous avons exploré le fonctionnement des rayons (voir : Une plongée plus approfondie : rastérisation et traçage de rayons), mais un bref aperçu du processus est nécessaire ici. Le cadre démarre normalement : la carte graphique restitue toute la géométrie – tous les triangles qui composent la scène – et la stocke en mémoire.

Après un peu de traitement supplémentaire, pour organiser les informations de manière à ce que la géométrie puisse être recherchée plus rapidement, le lancer de rayons entre en jeu. Pour chaque pixel composant le cadre, un seul rayon est projeté depuis la caméra vers l’image. scène.

Eh bien, pas au sens littéral : une équation vectorielle est générée, avec des paramètres définis en fonction de l’emplacement de la caméra et du pixel. Chaque rayon est ensuite comparé à la géométrie de la scène et c’est la première partie de la complexité du lancer de rayons. Heureusement, les derniers GPU d’AMD et de Nvidia sont livrés avec des unités matérielles dédiées pour accélérer ce processus.

Si un rayon et un objet interagissent, un autre calcul est effectué pour déterminer exactement quel triangle du modèle est impliqué, et la couleur du triangle modifiera effectivement la couleur du pixel.

Mais la lumière frappe rarement un objet et elle est complètement absorbée. En réalité, il y a beaucoup de réflexion et de réfraction, donc si vous souhaitez le rendu le plus réaliste possible, de nouvelles équations vectorielles sont générées, une pour les rayons réfléchis et réfractés.

Traçage de chemin vs traçage de rayons, expliqué

Un avant-goût de ce que des millions de rayons peuvent réaliser. Image : Gilles Tran

À leur tour, ces rayons sont tracés jusqu’à ce qu’ils touchent également un objet, et la séquence se poursuit jusqu’à ce qu’une chaîne de rayons soit finalement renvoyée jusqu’à une source de lumière dans la scène. À partir du rayon primaire d’origine, le nombre total de rayons tracés à travers la scène augmente de façon exponentielle à chaque rebond.

Rincez et répétez sur tous les autres pixels du cadre, et le résultat final est une scène éclairée de manière réaliste… même si un peu de traitement supplémentaire est encore nécessaire pour ranger l’image finale.

Mais même avec les GPU et CPU les plus puissants, la création d’une image entièrement tracée par rayons prend énormément de temps – bien plus longue qu’une image rendue traditionnellement, utilisant des calculs et des pixel shaders.

C’est là que le path tracing entre en scène, si l’on me permet le jeu de mots.

Quand plus de travail signifie moins de travail

Le concept initial de traçage de chemin a été introduit par James Kajiya en 1986, alors qu’il était chercheur pour Caltech. Il a montré que le problème de l’arrêt d’un processeur fonctionnant sur un nombre toujours croissant de rayons pouvait être résolu grâce à l’utilisation d’un échantillonnage statistique de la scène (en particulier, les algorithmes de Monte Carlo).

Pas seulement des jeux… pour le film Finding Dory (2016), la mise en œuvre du traçage de chemin par RenderMan a été utilisée pour la visibilité directe, les ombres, les reflets, les réfractions, l’éclairage diffus indirect et la diffusion souterraine.

Le traçage de rayons traditionnel consiste à calculer le chemin exact de réflexion ou de réfraction de chaque rayon et à le retracer jusqu’à une ou plusieurs sources de lumière. Avec le traçage de chemin, plusieurs rayons sont générés pour chaque pixel, mais ils rebondissent dans une direction aléatoire. Cela se répète lorsqu’un rayon frappe un objet et continue de se produire jusqu’à ce qu’une source de lumière soit atteinte ou qu’une limite de rebond prédéfinie soit atteinte.

En soi, cela ne semble probablement pas être un changement énorme dans la quantité de calcul requise, alors où est la partie magique ?

Tous les rayons ne seront pas utilisés pour créer la couleur finale du pixel dans le cadre. Seul un certain nombre d’entre eux seront échantillonnés et l’algorithme utilise les résultats pour obtenir un chemin de rebond de lumière presque idéal, de la caméra à la source lumineuse. On peut ensuite mettre à l’échelle le nombre d’échantillons pour chaque pixel, afin d’ajuster la précision de l’image finale.

Traçage de chemin vs traçage de rayons, expliqué

Le propre diagramme de Kajiya montrant les avantages du traçage de chemin par rapport au traçage de rayons traditionnel

Malgré une pile supplémentaire de calculs et de codage impliqués, le résultat final est qu’il y a beaucoup moins de rayons à traiter, même si le traçage de chemin déclenche généralement des dizaines de rayons par pixel. Le suivi des rayons et la réalisation de leurs calculs d’interaction sont à l’origine de la baisse de performances par rapport au rendu normal. Utiliser moins de rayons pour colorer un pixel est donc clairement une bonne chose.

Mais voici la partie la plus intelligente : normalement, moins de rayons donneraient un éclairage moins réaliste, mais comme la majeure partie de la couleur des pixels du cadre n’est affectée que par les rayons primaires, supprimer la plupart ou la totalité des rayons secondaires n’affecte pas les choses. autant qu’on pourrait le penser.

Maintenant, si la scène contient beaucoup de surfaces qui refléteront et réfractez la lumière, comme le verre ou l’eau, alors ces rayons secondaires deviennent importants. Pour contourner ce problème, soit l’algorithme est modifié pour tenir compte de la distribution des types de rayons que l’on devrait obtenir dans une scène, soit ces surfaces spécifiques sont traitées dans leur propre passe de rendu « entièrement tracée par rayons ».

Un bon développeur utilisera toute la gamme des outils de rendu à sa disposition : rastérisation avec shaders, traçage de chemin et traçage de rayons complet. C’est beaucoup plus de travail pour comprendre tout cela, mais c’est finalement moins de travail pour le matériel à gérer.

Pourquoi le path tracing fait-il l’actualité en ce moment ?

Plusieurs fois au cours des dernières années, nous avons vu des gros titres sur des mods ajoutant le lancer de rayons aux vieux classiques, mais la plupart d’entre eux font en réalité référence au traçage de chemin. Nous l’avons entendu en 2019 avec un mod expérimental pour Crysis et Quake 2, ou plus récemment avec le mod non officiel de traçage de rayons Half-Life, le mod Classic Doom, Descent et bien d’autres. Tout le traçage du chemin.

Il y avait aussi le tweet d’un ingénieur graphique R&D senior chez AMD, qui a annoncé son projet de mettre à jour le jeu original Return to Castle Wolfenstein avec un moteur de rendu tracé. Voir ci-dessous:

Échantillon 1

Après, en utilisant le traçage de chemin…

Échantillon 2

Utiliser le traçage de chemin…

Échantillon 3

Traçage de chemin vs traçage de rayons, expliqué

Comme indiqué ci-dessus, le remaster Quake II de Nvidia doté d’un moteur de rendu par lancer de rayons a été lancé pour aider à promouvoir la technologie RTX. C’était initialement l’œuvre d’une seule personne, Christoph Schied, qui a créé le remaster (techniquement connu sous le nom de Q2VKPT) dans le cadre d’un projet de recherche. Grâce aux contributions d’autres experts en technologie graphique, Quake II RTX est né et a été le premier jeu renommé à utiliser le traçage de chemin pour tout son éclairage.

Les modèles et textures d’origine sont toujours présents et le seul aspect qui a été modifié concerne la façon dont les surfaces étaient éclairées et les ombres générées. Les images statiques ne sont pas le meilleur moyen de démontrer l’efficacité du nouveau modèle d’éclairage, mais vous pouvez vous en procurer une copie gratuite ou regarder cette vidéo…

Bandying refroidit des phrases telles que échantillonnage stochastique à importance multiple et algorithmes de réduction de la variance, le projet a mis en évidence deux choses : premièrement, le traçage de chemin a l’air vraiment cool, et deuxièmement, il reste très difficile pour les développeurs et le matériel. Si vous voulez voir à quel point les mathématiques sont complexes, lisez le chapitre 47 de Ray Tracing Gems II.

Mais là où Quake II RTX montre ce qui peut être réalisé en traçant tout, Control et Cyberpunk 2077 démontrent que des graphismes incroyables peuvent être obtenus en mélangeant toutes les méthodes d’éclairage et d’ombre – la rastérisation et les shaders règnent toujours en maître, avec le lancer de rayons. pour les reflets et les ombres.

Nous sommes donc encore loin de voir tous les jeux rendus en utilisant uniquement le traçage de chemin.

Suivre le chemin vers un avenir meilleur

Malgré sa relative nouveauté dans le monde du rendu en temps réel, le path tracing est définitivement là pour rester. Nous avons déjà vu les résultats dans un seul jeu et le traçage de chemin est déjà largement utilisé dans les rendus hors ligne, tels que Blender, ainsi que dans l’industrie cinématographique, avec Autodesk Arnold et RenderMan de Pixar.

Il n’y a aucun signe que les GPU approchent d’une quelconque limite de leur puissance de calcul maximale, donc même si le lancer de rayons, traditionnel ou le traçage de chemin, est toujours très exigeant, du matériel plus puissant arrivera sur le marché au fil des années.

Le traçage de chemin a été utilisé pour créer le CGI pour des jeux comme Game of Thrones

Tout cela signifie que les développeurs des futurs jeux PC vont certainement explorer toute technique de rendu produisant des graphismes époustouflants avec des performances réalisables, et le traçage de chemin a le potentiel de faire exactement cela.

Il y a aussi des consoles à considérer. La Xbox Series X et la PlayStation 5 offrent toutes deux la prise en charge du lancer de rayons « traditionnel », mais étant donné que leurs GPU seront relativement obsolètes dans quelques années seulement, les développeurs chercheront à utiliser tous les raccourcis possibles pour extraire les dernières restes de hors tension de ces machines, avant de passer à la prochaine génération de consoles.

Voilà donc le path tracing, le cousin rapide du ray tracing. Il a l’air presque aussi beau, fonctionne beaucoup plus vite. Compte tenu des progrès continus de la technologie et des performances graphiques des PC et des consoles domestiques, il ne faudra pas longtemps avant que nous puissions également voir les images de synthèse des derniers blockbusters dans nos jeux préférés.

Continue de lire. Explications sur Metatrone

  • Vous êtes-vous déjà demandé comment fonctionne l’algorithme Shazam ?
  • À quel point la température est-elle trop chaude pour le matériel PC ?
  • Rendu de jeu 3D 101 : la création de graphiques expliquée
  • Explication : Qu’est-ce que le Chip Binning ?

  è  ééè éé è  è  è  é  è  

Si vous appréciez notre contenu, pensez à vous abonner.

  • Expérience Metatrone sans publicité tout en soutenant notre travail
  • Notre promesse: Toutes les contributions des lecteurs serviront à financer davantage de contenu
  • Cela signifie: Plus de fonctionnalités techniques, plus de références et d’analyses

Retour à La Une de Logo Paperblog

A propos de l’auteur


Zaebos 7622 partages Voir son profil
Voir son blog