Transférence Précalculé de Radiance pour la conception d éclairage en temps réel

Après avoir écrit deux articles sur éclairage inverse, nous décrirons une méthode d’éclairage en temps réel qui pourrait être utilisé dans une mise en œuvre d’éclairage inverse.

Pour la conception de l’éclairage en temps réel, les objectifs sont d’ajouter, supprimer,  modifier les attributs et la position des lumières en temps réel. Lorsque les lumières sont déplacés, l’éclairage de la scène doit être mis à jour en temps réel, tous les effets d’illumination globale tels que l’éclairage indirect, caustiques, transluminescence doivent être recalculées. D’ailleurs, il devrait être possible de déplacer la caméra pour regarder l’éclairage de différents angles.

Il s’étend des travaux antérieurs sur le transfert de rayonnements lointaines pré calculées, qu’utilisent la notion de nuage de lumière non structurée (“unstructured light clouds”)​​. Le nuage de lumière structurée permet une représentation compacte des lumières locaux dans le modèle et une rendu en temps réel de modèles complexes avec éclairage créé par des sources lumineuses locales.

Cette méthode utilise simplification des lumières et une analyse en composants principales avec clustering de données pour obtenir une représentation compressée. Les résultats démontrent un rendu en temps réel de scènes avec des lumières en mouvement, mouvement dynamique de caméras, des matériaux brillants et illumination globale de l’espace.

Description du pipeline de la méthode

  La figure montre l’aperçu général du système d’éclairage en temps réel. Il se compose d’un pipeline de trois outils de prétraitement, qui produisent une représentation compressée de la lumière qui est utilisée dans la dernière étape (à droite) en temps réel pour la conception d’éclairage interactif:

  1. la sortie des rayonnements due à un ensemble de lumières d’entrée est calculé en chaque sommet.
  2. les lumières sont regroupés en ensembles (clustering) de lumières similaires par zone; ceci résulte en des nuages de lumière non structurées
  3. les vecteurs d’éclairage à chaque sommet sont compressés en utilisant regroupement avec ACP (Analyse en composantes principales)
  4. pour le rendu en temps réel , une nouvelle lumière (cercle rouge) est insérée dans le nuage de lumière structurée, et l’illumination des sommets est calculé en temps réel.

Zonage

Pour optimiser encore le nuage de lumières, nous présentons une nouvelle technique où la géométrie de la scène est divisée en des zones différentes. Pour chaque zone, il est effectué le processus de regroupement au-dessus des lumières séparément. Ceci est illustré dans le troisième pipeline représenté sur la Figure 2. L’avantage de ceci est que les lumières loin d’une zone sont automatiquement regroupés en clusters beaucoup plus rapidement.
Curieusement, le zonage a permis de gérer un nombre beaucoup plus grande de scènes dans l’étape de pré calcul. La raison en est que seulement une zone à la fois doit résider dans la mémoire.
.

Compression des Rayonnements de Surface

On utilise l’analyse des composants principaux avec clustering (CPCA) et l’algorithme k-means pour comprimer les matrices de sommets.
Le regroupement initial des sommets est effectuée à l’aide du algorithme k-means (dans chaque itération, on calcule d’abord le barycentre des lumières de chaque groupe et on regroupe chaque point en le placent dans le groupe dont le nouvel barycentre est le plus proche). Nous procédons ensuite à attribuer un vecteur de ACP au groupe où l’ajout de ce vecteur donnerait la plus grande diminution par sommet d’erreur d’approximation.

Après l’attribution des vecteurs de l’ACP, nous refaisons le regroupement des sommets, mais cette fois en utilisent l’erreur d’approximation calculée par chaque vecteur ACP par rapport chaque sommet comme critère de regroupement. En général, on doit répéter cette étape entre 20 et 30 fois ou jusqu’à ce que la convergence apparaître.
Nous continuons d’ajouter des vecteurs de l’ACP jusqu’à ce que nous atteignons un nombre moyen souhaité de vecteurs de base par sommet.

  • Exemple de résultat:

Calcul du nouvel éclairage en temps réel

Une fois les informations d’éclairage ont été compressé, la scène peut être rallumé en temps réel. L’objectif est d’insérer une source de lumière à une position arbitraire dans le nuage de lumières, et de reconstruire rapidement le rayonnement résultant de toutes les sommets dans une direction donnée, ωo, en utilisant la représentation comprimé.
.

Pour ajouter des nouvelles sources lumineuses

Compte tenu de la configuration lumineuse d’un utilisateur constituée d’un emplacement de source de lumière, ‘l’, intérieur du nuage et sa puissance lumineuse, ‘Φl’, l’effet de cette source lumineuse peut être approximé en utilisant lumières locaux proches dans le nuage de lumière. On organise les lumières locales dans un arbre kd (“kd-tree”) et on localise les m lumières les plus proches en utilisant un algorithme de recherche rapide [Bentley 1975].
La distance de ‘l’ à la lumière plus éloignée du nuage est notée ‘r’, et donc ‘l’ et ‘r’ peuvent être considérés comme une sphère utilisé pour le filtrage. Voir la Figure suivante pour une illustration:

Bibliographie:

Precomputed Local Radiance Transfer for Real-Time Lighting Design:

Anders Wang Kristensen – UCSD
Tomas Akenine-Möller – Lund University
Henrik Wann Jensen – UCSD
http://delivery.acm.org/10.1145/1080000/1073334/p1208-kristensen.pdf?ip=192.168.4.59&acc=ACTIVE%20SERVICE&CFID=271825299&CFTOKEN=76698775&__acm__=1359848612_1dff6549195b58e0755bc6beda2cb4c3

One thought on “Transférence Précalculé de Radiance pour la conception d éclairage en temps réel

  1. Merci pour la présentation de cette technique astucieuse.

    La question est de savoir comment des techniques de rendu temps-réel peuvent être intégrées à des modèles de simulation inverse de l’éclairage.

    Cdt,

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>