3 points par GN⁺ 2024-04-16 | 1 commentaires | Partager sur WhatsApp

Comprendre le ray tracing à travers le spectre

Explication de fond sur les raisons pour lesquelles la longueur d’onde est importante en ray tracing et sur l’impact du ray tracing spectral dans l’art numérique

Ray tracing

  • Éclairer une scène en modélisant le trajet de rayons qui rebondissent de manière répétée entre des objets virtuels, entre une caméra virtuelle et des sources lumineuses
  • De nombreux raccourcis sont utilisés pour des raisons de performance
    • Ex. : suivre à rebours le trajet des rayons allant de la source lumineuse vers la caméra
    • Traiter les rayons comme des particules transportant un vecteur RGB correspondant à la « couleur », en ignorant leurs propriétés ondulatoires
  • Le raccourci RGB fonctionne bien en raison de la manière dont nos yeux fonctionnent
    • Nos yeux possèdent trois types de cellules détectrices de couleur sensibles aux longueurs d’onde (cônes SML)

Voir le spectre

  • Les couleurs que nous voyons sont rarement constituées d’une seule longueur d’onde ; elles sont composées d’une SPD (spectral power distribution), c’est-à-dire d’un ensemble de nombreuses longueurs d’onde
  • Une même couleur peut correspondre à plusieurs SPD (métamérisme)
    • Ex. : le jaune correspond à une longueur d’onde de 580 nm, mais peut aussi être reproduit par un mélange de lumière rouge et verte
  • La conversion d’une SPD en couleur est possible de façon purement mathématique (espace colorimétrique CIE 1931)
    • Un lien quantitatif entre la physique, la physiologie et l’expérience subjective

Quand la longueur d’onde compte

  • Lorsque les propriétés ondulatoires des rayons influencent directement leur trajet à travers la scène
    • Ex. : dispersion (prisme), interférences sur film mince (motifs arc-en-ciel sur les bulles de savon)
  • Les interférences sur film mince ne divisent pas le spectre en longueurs d’onde uniques, mais augmentent ou diminuent la contribution de certaines parties du spectre, produisant ainsi des couleurs non spectrales comme le cyan-vert ou le brun

Ray tracing spectral et art numérique

  • Un ray tracing qui prend en compte les propriétés ondulatoires des rayons
  • Au lieu de couleurs RGB, il génère une SPD pour chaque pixel de la scène et exploite la longueur d’onde et la phase des rayons pour mieux prédire les couleurs
  • Cela suscite la curiosité sur ce qui se produit lorsqu’on enfreint volontairement certaines lois qui régissent le transport de la lumière
    • Construire en code une caméra dans un univers légèrement différent du nôtre
  • Présentation d’œuvres créées avec un moteur de ray tracing spectral écrit en JavaScript et GLSL

L’avis de GN⁺

  • L’article explique bien les phénomènes physiques à prendre en compte pour un rendu réaliste en infographie
    • La partie reliant cela à la manière dont nos yeux perçoivent les couleurs est particulièrement marquante
  • Il est appréciable de voir des cas d’usage directement appliqués à la création artistique, ce qui aide à comprendre comment la théorie se traduit en pratique
    • Il est fascinant de voir comment la modification des méthodes de ray tracing peut produire des images irréalistes mais magnifiques
  • Cette technologie de ray tracing spectral semble pouvoir être utilisée dans des domaines variés au-delà de la simulation optique, comme la visualisation de données scientifiques, la VR/AR ou les effets visuels au cinéma
  • Avec les progrès du rendu fondé sur le deep learning, les tentatives visant à dépasser les limites du ray tracing traditionnel continuent d’émerger
    • Il sera intéressant de voir quelles technologies de rendu innovantes apparaîtront à l’avenir

1 commentaires

 
GN⁺ 2024-04-16
Commentaires sur Hacker News
  • L’ebook gratuit "Ray Tracing Gems II" traite du ray tracing GPU en temps réel avec des API modernes et de l’accélération matérielle, et comprend un chapitre sur le rendu spectral (Chapter 42: Efficient spectral rendering on the GPU for predictive rendering)
  • Des exemples de ray tracers spectraux sont cités, comme Mitsuba, Maxwell et Manuka de Wētā FX
    • Mitsuba : un moteur de rendu de recherche open source. Il propose diverses fonctionnalités, dont le rendu différentiable
    • Maxwell : propose deux modes spectraux avec des niveaux de précision différents. Le mode le plus complexe est souvent utilisé en optique
    • Manuka : basé sur le spectral et utilisé sur plusieurs films
  • Commentaire de l’auteur du post original :
    • Le rendu spectral montre bien que le ray tracing n’est pas la finalité du rendu en soi. Certains estiment que le rendu est un problème résolu grâce au ray tracing en temps réel, mais c’est loin de la réalité
    • La plupart des systèmes de rendu spectral ne gèrent pas les interférences de couches minces ni d’autres effets basés sur les ondes. Le monde réel contient une quantité étonnante de détails
  • Proposition de génération d’images hyperspectrales (plus de 3 canaux) :
    • Mettre l’accent sur le spectre pourrait servir à l’éducation des enfants sur les couleurs
    • Les images et caméras hyperspectrales sont rares et traditionnellement coûteuses, mais des images synthétiques pourraient les remplacer
    • Un moteur de rendu dans le navigateur, à très basse résolution, pourrait peut-être permettre de manipuler interactivement l’éclairage et les matériaux
    • Il serait possible de faire des rendus du point de vue d’une vision des couleurs atypique, d’humains pouvant voir jusqu’aux UV après une opération de la cataracte, de mammifères daltoniens ou de carpes tétrachromates
  • Implémenter soi-même un ray tracer est étonnamment facile. Des livres gratuits ou des tutoriels GPU basés sur Unity sont recommandés
    • Jouer avec une implémentation de base permet d’acquérir de l’intuition (par exemple, implémenter les rayons comme des particules attirées ou repoussées par les objets, ou mémoriser le dernier angle de réflexion pour l’exploiter avec le matériau suivant)
    • La plupart des résultats n’étaient pas très beaux, mais cela a permis d’acquérir de l’intuition. Déplacer légèrement la caméra aide aussi
  • On se demande si les modifications apportées pour des raisons esthétiques pourraient aussi être utiles dans d’autres visualisations
  • Tentative d’implémentation de la réfraction dans un ray tracer distribué
    • Échantillonner aléatoirement les fréquences, calculer la couleur, puis moduler la couleur du rayon
    • Comme la couleur de réfraction pure n’a qu’un tiers de la luminosité, il faut multiplier le résultat par 3
  • J’aimerais en savoir plus sur l’artwork partagé à la fin de l’article. L’idée de rendre une réalité où la lumière fonctionne autrement que chez nous est fascinante
  • J’aimerais comprendre l’impact sur les performances du ray tracing lorsqu’on modélise une distribution spectrale plutôt que des pixels RGB