Simulation d’éclairage dans des environnements architecturaux complexes : approches séquentielle et parallèle Daniel Meneveaux Kadi Bouatouch
Plan Introduction Problématique Structuration Modélisation Regroupement de surfaces Radiosité séquentielle Conclusion et perspectives
Introduction Simuler les transferts d’énergie lumineuse entre les surfaces d’un environnement Architectes, éclairagistes (placement de luminaires) Évaluer différents paramètres de confort visuel : niveau d ’éclairement éblouissement Acquisition des propriétés photométriques des matériaux (spectrophotomètres) Utilisation d ’un modèle mathématique exprimant les interreflexions lumineuses
Introduction modèle d’éclairement Équation de luminance : k : réflectance bidirectionnelle Le : luminance auto-émise q : angle du rayon incident
Introduction équation de radiosité Hypothèse : Surfaces diffuses Bi : radiosité du carreau i ri : réflectivité du carreau i Ei : radiosité auto-émise par le carreau i Fij : facteur de forme entre les carreaux i et j Résolution de ce système à l ’aide de méthodes itératives (Jacobi / Gauss-Seidel / Southwell)
Introduction Radiosité hiérarchique Maillage hiérarchique des surfaces afin de réduire le nombre de mailles Création de liens entre les mailles afin d ’accélérer les calculs Liens d ’interaction Mailles Surface A Surface B
Plan Introduction Problématique Structuration Modélisation Regroupement de surfaces Radiosité séquentielle Conclusion et perspectives
Problématique
Problématique 20 000 surfaces : 200 000 mailles 1 million de liens 1 Go de mémoire Comment faire avec plusieurs millions de surfaces ? Calcul de radiosité Visualisation (interactive)
Problématique Solutions Découper l’environnement en plusieurs sous-parties appelées cellules Précalculer les relations de visibilité entre ces cellules Effectuer les calculs de radiosité seulement sur un sous-ensemble de cellules à la fois
Problématique solution : architecture géométrie Structuration SIM_SEQ Modeleur BDD RAD Cellules 3D Regroupement de surfaces SIM_PAR VISU Clusters
Plan Introduction Problématique Structuration Modélisation Regroupement de surfaces Radiosité séquentielle Conclusion et perspectives
Structuration Objectif «diviser pour mieux régner» : Résultat : Découper l’environnement en plusieurs régions appelées «cellules» 1 cellule = 1 pièce, 1 couloir, etc. Calculer les relations de visibilité inter-cellules Résultat : 1 liste de cellules 1 graphe de visibilité
Structuration l’existant Découpage binaire de l’espace BSP [Fuchs80]: Utilisé par J.M. Airey en 1990 (environnements axiaux) Repris par Teller en 1992 Découpage binaire récursif de l’environnement Chaque partie est découpée à l’aide d’un seul plan Déterminé selon des heuristiques empiriques (polygone le plus occlusif, découpant le moins de surfaces possibles, etc..) Résultats : De trop nombreuses cellules Ne respectant pas la topologie de l’environnement Ne fonctionne que pour certains bâtiments : axiaux
Structuration notre approche Déterminer des «plans de découpage» verticaux : associés à plusieurs polygones verticaux quasi-alignés à l’aide d ’un espace dual Extraire des cellules : selon une méthode basée modèle base de règles fonctionne pour tout type de bâtiment Déterminer les ouvertures de chaque cellule : situées sur les plans de découpage Construire un graphe de visibilité
Structuration plans de découpage Espace dual q,r : q représente l ’angle entre la normale du polygone et l ’axe Ox du repère de la scène r correspond à la distance orthogonale entre le plan du polygone et l’origine du repère global de la scène Polygone vertical z Aire r y Normale q r x q
Structuration plans de découpage Classification : Regrouper les points de l’espace dual proches les uns des autres <=> regrouper des polygones verticaux quasi-alignés Méthode de classification de type BSP : Découpage selon l’axe q Puis selon l’axe r r P1 P2 P3 P2 P3 P4 P4 q P1
Structuration plans de découpage 1 plan de découpage associé à chaque groupe de polygones verticaux représentés dans l’espace dual Déterminé par qs et rs : rs tel que : le demi-espace défini par Ns.Ps + rs >= 0 contienne tous les polygones associés aux points appartenant au cluster
Structuration plans de découpage
Structuration Base de règles Cellules rectangulaires contraintes Cellules rectangulaires non contraintes Couloirs avec deux murs parallèles Pièces convexes quelconques : suivi de contours 1 3 4 2
Structuration création des ouvertures Ouvertures situées sur les plans de découpage Plan de découpage Chambranle (de porte)
Structuration création du graphe de visibilité Création d’un graphe d’adjacence 1 nœud = 1 cellule 1 arc = 1 ouverture commune Création du graphe de visibilité Parcours du graphe d’adjacence en profondeur Échantillonnage des ouvertures Calculs de visibilité à l’aide de lancé de rayon
Structuration découpage semi-interactif Sélection d’une zone 3D
Structuration découpage semi-interactif Extraction de la cellule 1
Structuration découpage semi-interactif Extraction de la cellule 2
Structuration découpage semi-interactif Extraction de la cellule 3
Structuration découpage semi-interactif Extraction de la cellule 4
Structuration découpage semi-interactif Extraction de la cellule 5
Structuration découpage semi-interactif Zone bleue = cellules extraites
Structuration découpage semi-interactif Extraction d’une cellule quelconque (suivi de contour)
Structuration découpage semi-interactif Extraction d’une cellule quelconque (suivi de contour)
Structuration découpage semi-interactif Après extraction de toutes les cellules Fenêtre de visualisation
Plan Introduction Problématique Structuration Modélisation Regroupement de surfaces Radiosité séquentielle Conclusion et perspectives
Modélisation Pourquoi structurer l’environnement après sa modélisation ? Plus simple d’utiliser les connaissances de l’utilisateur pour effectuer une structuration efficace Solution : Outil interactif permettant de modéliser rapidement des environnements très complexes Guider la structuration par une modélisation modulaire
Modélisation module pièce
Modélisation création d’ouverture Description d’une ouverture
Modélisation module bâtiment
Plan Introduction Problématique Structuration Modélisation Regroupement de surfaces Radiosité séquentielle Conclusion et perspectives
Regroupement de surfaces problématique A partir d’une cellule => de nombreuses surfaces sont visibles Calculs de radiosité pour 1 seule cellule => taille mémoire importante
Regroupement de surfaces solution Comment affiner encore les relations de visibilité ? Construire des groupes de surfaces proches les unes des autres : le «clustering» Évaluer les relations de visibilité inter-«cluster»
Regroupement de surfaces travaux existants Subdivision spatiale : grilles 3D régulières, arbres BSP, arbres quaternaires, octrees, etc. Techniques nécessitant la création d’une hiérarchie de volumes, approche descendante Critères empiriques et peu intuitifs
Regroupement de surfaces notre approche Pas de gestion de hiérarchie, méthode ascendante Technique de classification de type k-means : les nuées dynamiques : Barycentres mobiles usuellement utilisée en 2D
Regroupement de surfaces les nuées dynamiques en 3D Nombre de groupes = nb_total / nb_moyen nb_total = nombre total de polygones nb_moyen = nombre moyen de polygones par groupe, fixé par l’utilisateur Choix des barycentres : de manière aléatoire parmi les sommets des polygones Distance entre un barycentre et une surface = distance au barycentre du polygone Barycentre d’un groupe de polygones = barycentre des barycentres
Regroupement de surfaces application aux environnements complexes Utilisation de la structuration de l’environnement Regroupement effectué pour chaque cellule accélération des calculs réduction des données en mémoire
Regroupement de surfaces calculs de visibilité Boîte englobante associée à chaque cluster Zone visible d’un cluster C à travers une ouverture pyramide à l’intérieur d’une cellule déterminée par l ’ouverture et la boîte englobante de C Cluster C Cellule Zone visible de C (pyramide) Ouverture
Regroupement de surfaces propagation de la visibilité Si une ouverture est contenue dans la pyramide, alors les objets situés de l ’autre côtés de l ’ouverture peuvent être visibles Cluster C Nouvelle pyramide
Regroupement de surfaces interface graphique Visualisation des relations de visibilité
Regroupement de surfaces interface graphique Visualisation des relations de visibilité
Plan Introduction Problématique Structuration Modélisation Regroupement de surfaces Radiosité séquentielle Conclusion et perspectives
Radiosité séquentielle travaux antérieurs Une seule approche : [Teller94] Objectif : maintenir une bonne localité des données en mémoire 4 heuristiques : choix aléatoire du cluster (étalon) choix du cluster = ordre de modélisation source : choisir le cluster ayant servi comme émetteur le plus souvent choix BSP : ordre obtenu par le découpage
Radiosité séquentielle notre contribution Proposer de nouvelles heuristiques Prenant effectivement en compte les accès-disque Objectif : prédire les coûts des échanges disque/mémoire à court terme à moyen terme à long terme
Radiosité séquentielle stratégies « glouton » S et C Choix d’une cellule à un instant donné : Sans se préoccuper des coûts à long terme l’ordre global n’est pas optimal (en terme d’E/S) Glouton S : Coûts évalués en terme de polygones donnés par le modeleur cellules contenant beaucoup de polygones choisies en fin d’itération Glouton C : Coûts évalués en terme de cellules (ou clusters) Afin de favoriser la réutilisation des cellules (ou clusters) déjà en mémoire
Radiosité séquentielle stratégies « retour-arrière » S et C Prévision de coûts à moyen terme Création d’un arbre de recherche de profondeur N Choix du chemin optimal (de longueur N) dans cet arbre Ci
Radiosité séquentielle stratégie du « voyageur de commerce » Pour prévoir à long terme les coûts d ’E/S Problème équivalent au voyageur de commerce (VC) NP-complet Utilisation d’un algorithme classique de résolution VC Orientation et valuation du graphe de visibilité (=> GVC) Recherche d’un cycle passant par tous les nœuds de GVC Effectuer les calculs de radiosité en suivant ce chemin Inconvénients : Coûts d’écriture impossibles à prévoir Pour un graphe trop important, temps de calcul prohibitif
Radiosité séquentielle architecture logicielle Tableau de clusters (ou cellules) EnMémoire[ ] Graphe de visibilité Module d’ordonnancement Module de Radiosité Mémoire principale (RAM) Disque dur
Radiosité séquentielle stratégie « voyageur de commerce »
Radiosité séquentielle résultats Scène 615 cellules, 57786 surfaces et 12942 clusters, 360000 mailles, 1.5 Millions de liens (maillage grossier) Taille mémoire minimale avec les cellules : 150 Mo avec les clusters : 60 Mo Temps dus aux accès-disque = env. 1/10 du temps total Stratégie aléatoire Max énergie Glouton S Glouton C Ret-Arr S Ret-Arr C Voy Comm Cellules 229 mn 280 mn 161 mn 140 mn 1378 mn 975 mn 130 mn Clusters 152 mn 186 mn 107 mn 93 mn 918 mn 650 mn Plusieurs jours
Plan Introduction Problématique Structuration Modélisation Regroupement de surfaces Radiosité séquentielle Radiosité hiérarchique parallèle Conclusion et perspectives
Radiosité hiérarchique parallèle problématique Calculs de simulation d’éclairage encore trop longs Solution : répartir les calculs et les données sur plusieurs processeurs Comment répartir efficacement les données ? Equilibrage de charge dynamique Convergence de l ’algorithme de radiosité parallèle Gestion de la terminaison des processus
Radiosité hiérarchique parallèle travaux antérieurs Funkhouser : Utilisation d ’algorithmes parallèles de type maître-esclave Beaucoup de messages envoyés Taille des messages importante Feng et Yeng : Également maître-esclave, Grain plus fin Taille des données importante en mémoire des processeurs Taille des messages importantes Remarque : L. Renambot IRISA : cas de radiosité parallèle non hiérarchique
Radiosité hiérarchique parallèle nos objectifs Portabilité : Réseau hétérogène de machines Machine parallèle Les deux ensemble Utilisation de l ’environnement de programmation MPI Réduction de la taille des messages et de leur nombre Répertoire commun à tous les processeurs Équilibrage de charge (statique & dynamique) Terminaison et convergence de l’algorithme de radiosité
Radiosité hiérarchique parallèle déroulement des calculs Algorithme de type SPMD Nœud du graphe = cluster (1) découpage de GV (nuées dynamiques) (2) Distribution des données
Radiosité hiérarchique parallèle organisation des données sur le disque commun Répertoire commun (Itération k) P 1 P 2 P 3 P i P n (Itération k+1) Répertoire local au processeur i
Radiosité hiérarchique parallèle algorithme Lire sur le disque le graphe de visibilité Tant que non convergence, faire (1 itération) : Pour chaque cluster C attribué faire : Choisir(C) // algorithme du voyageur de commerce Lire(C) // et ses clusters visibles sur le disque RadiositéGaussSeidel(C) EquilibrageChargeDyn() // à chaque itération ReconfigurationAnneau() Synchronisation() // tests de convergence Pas de messages
Radiosité hiérarchique parallèle résultats TEMPS ACC. 1 SUNULTRA 16920mn 1 2 SUNULTRA 6552mn 2.5 3 SUNULTRA 5394mn 3.2 4 SUNULTRA 4338mn 3.9 1 SGI4 4594mn 3.7 8 PROCS 2880mn 5.9 10 PROCS 2160mn 7.8
Radiosité hiérarchique parallèle résultats
Plan Introduction Problématique Structuration Modélisation Regroupement de surfaces Radiosité séquentielle Conclusion et perspectives
Conclusion et perspectives conclusion Calculs de radiosité pour des environnements complexes : temps de calculs prohibitifs, problèmes de stockage mémoire Prétraitement : découpage de l ’environnement en cellules regroupement de surfaces (clusters) Simulation d’éclairage : réduction des accès-disque (stratégies d ’ordonnancement) calcul parallèle Visualisation interactive : Avant, pendant, après les calculs de radiosité
Conclusion et perspectives perspectives Adaptation au découpage à des environnements complexes d’extérieur (urbains ou ruraux) Adaptation / ajout de nouvelles règles Modélisation : A compléter et rendre plus opérationnelle (Y. Bertrand) Rendu-basé-image Réalisme des images résultantes Réduction de certains traitements