Pré-traitement de Grosses bases de données pour la Visualisation interactive Xavier Décoret iMAGIS est un projet commun CNRS - INPG - INRIA - UJF iMAGIS-GRAVIR / IMAG 1 Plan de la présentation • Problématique • Calcul de visibilité – Travaux précédents – Contributions • Niveaux de détails – Travaux précédents – Nuages de Billboards • Conclusion 2 Plan de la présentation • Problématique • Calcul de visibilité – Travaux précédents – Contributions • Niveaux de détails – Travaux précédents – Nuages de Billboards • Conclusion 3 Problématique • Environnements virtuels – Jeu, tourisme virtuel, simulateurs • L’utilisateur se promène librement • L’ordinateur affiche ce que « voit » l’utilisateur Mise à jour rapide de l’affichage (25 fois par sec) 4 Sentiment d’immersion: • Environnements complexes – Étendue spatiale grande – Détails nombreux • Effets réalistes – Ombres – Effets d’éclairages (reflets) – Apparence Temps de calcul élevé 5 Problématique Complexité du modèle Base de données Actions utilisateur Temps de calcul limité Système de rendu images Pré-calcul pour accélérer •Réutiliser certains résultats •Optimiser les représentations 6 Élimination des faces cachées • Projections des sommets • Remplissage des faces 7 Élimination des faces cachées • Projections des sommets • Remplissage des faces Image 8 Élimination des faces cachées • Projections des sommets • Remplissage des faces Pixel Image 9 Élimination des faces cachées • Projections des sommets • Remplissage des faces Image 10 Élimination des faces cachées • Projections des sommets • Remplissage des faces Image 11 Élimination des faces cachées • Projections des sommets • Remplissage des faces Image 12 Élimination des faces cachées • Projections des sommets • Remplissage des faces Image 13 Élimination des faces cachées • Projections des sommets • Remplissage des faces couleur Pixel = profondeur Image 14 Élimination des faces cachées • Projections des sommets • Remplissage des faces • Z-buffer [Cat74] Profondeur > profondeur Image 15 Conséquences • Modèle 3D complexe ) calculs nombreux • Redondances de calculs • Calculs inadaptés 16 Conséquences • Modèle 3D complexe ) calculs nombreux • Redondances de calculs • Calculs inadaptés Image 17 Conséquences • Modèle 3D complexe ) calculs nombreux • Redondances de calculs • Calculs inadaptés Image 18 Conséquences • Modèle 3D complexe ) calculs nombreux • Redondances de calculs • Calculs inadaptés Image 19 Conséquences • Modèle 3D complexe ) calculs nombreux • Redondances de calculs • Calculs inadaptés Image 20 Conséquences • Modèle 3D complexe ) calculs nombreux • Redondances de calculs • Calculs inadaptés Image 21 Conséquences • Modèle 3D complexe ) calculs nombreux • Redondances de calculs • Calculs inadaptés Image 22 Conséquences • Modèle 3D complexe ) calculs nombreux • Redondances de calculs • Calculs inadaptés Image 23 Conséquences • Modèle 3D complexe ) calculs nombreux • Redondances de calculs • Calculs inadaptés Image 24 Solutions possibles • Calcul de visibilité – Déterminer ce qui est caché – Éviter de le dessiner inutilement • Niveaux de détails – Plusieurs niveaux de précision – Utiliser le niveau adapté à la distance • Rendu alternatifs 25 Plan de la présentation • Problématique • Calcul de visibilité – Travaux précédents – Contributions • Niveaux de détails – Travaux précédents – Nuages de Billboards • Conclusion 26 Calcul de visibilité • Éliminer le plus tôt possible ce qui n’apparaîtra pas dans l’image • Deux approches possibles – Calcul à la volée ) pour le point de vue courant – Pré-calcul ) pour une région de l’espace • Difficulté: fusion des ombres et de pénombres 27 Fusion des ombres Cône d’ombre Point de vue Bâtiments (vue de dessus) 28 Fusion des ombres Cône d’ombre Point de vue Bâtiments (vue de dessus) 29 Fusion des ombres Cône d’ombre Point de vue Bâtiments (vue de dessus) 30 Fusion des ombres Point de vue Bâtiments (vue de dessus) 31 Fusion des pénombres Cellule Bâtiments (vue de dessus) 32 Fusion des pénombres Cellule Bâtiments (vue de dessus) 33 Visibilité • Nombreux travaux [Dur99] • Classification [SPS74] Espace Objet Espace Image •Hierarchical Frustum Culling [GBW90] •Hierarchical Z-buffer [GKM93] •Shaft culling [HW91] •Hierarchical Occlusion Map [ZMH97] •Shadow volumes [CT97] •Bloqueurs convexes [CZ98] •Convex Vertical Prisms [DM01] •2D1/2 Occlusion maps [WS99] •Extended projections [DDTP00] •Volumetric visibility [SDSD00] •Line Space subdivision [BWW01] •Portals [ST91] •Portals [LG95] 34 Problème complexe • • • • Pas de solution exacte ) être conservatif Réalise plus ou moins bien les fusions Espace objet ) visibilité étendue Espace image ) fusion (implicite) Mélanger les approches 35 Plan de la présentation • Problématique • Calcul de visibilité – Travaux précédents – Contributions • Niveaux de détails – Travaux précédents – Nuages de Billboards • Conclusion 36 Difficulté • Objets visibles d’un point facile – Z-buffer • Objets visibles d’une région difficile Se ramener à un problème ponctuel 37 Réduction de bloqueurs • Proposé par [WWS00] Objet Cellule Bloqueurs 38 Réduction de bloqueurs • Proposé par [WWS00] Centre de la cellule Objet Bloqueurs réduits 39 Réduction de bloqueurs • Proposé par [WWS00] O 40 Réduction de bloqueurs • Proposé par [WWS00] O { P tel que Br(P) O } r-réduction 41 Réduction de bloqueurs • Proposé par [WWS00] O V V’ M • Généralisation à des cellules convexes • Réduction des objets testés 42 Réduction bloqueurs/bloqués Objet Cellule Bloqueurs 43 Réduction bloqueurs/bloqués Centre de la cellule Objet réduit Bloqueurs réduits •Traitement similaire bloqueurs/bloqués •Calcul en une seule passe Image prise du centre de la cellule avec les objets réduits 44 Formalisation (1) • Dilatation (Somme de Minkowski [SM93]) O©X O X Ensemble de points Ensemble de vecteurs {P+x, P2 O et x 2 X} 45 Formalisation (2) • Erosion O Ensemble de points OªX X Ensemble de vecteurs {P tel que 8 x 2 X, P+x 2 O } 46 Théorème O Si un rayon (VM) est bloqué par O ª X avec X convexe, alors: OªX V Tout rayon (V’M’) est bloqué V’ par O avec : V’ 2 {V} © X et M’2 {M} © X M M’ 47 Érosion approximative • Érosion exacte difficile à calculer • On peut calculer des approximations 48 Difficulté • Érosion exacte difficile à calculer • On peut calculer des approximations OªX Érosion interne ½ OªX ½ OªX Érosion par X Érosion externe 49 Mise en oeuvre • Construire une carte d’occlusion avec les érosions internes • Tester les érosions externes par rapport à la carte Objets+érosions 50 Mise en oeuvre • Construire une carte d’occlusion avec les érosions internes • Tester les érosions externes par rapport à la carte 51 Modification de l’algorithme • Construire une carte d’occlusion avec les érosions internes • Tester les érosions externes par rapport à la carte Carte d’occlusion 52 Modification de l’algorithme • Construire une carte d’occlusion avec les érosions internes • Tester les érosions externes par rapport à la carte Carte d’occlusion 53 Modification de l’algorithme • Construire une carte d’occlusion avec les érosions internes • Tester les érosions externes par rapport à la carte Carte d’occlusion 54 Modification de l’algorithme • Construire une carte d’occlusion avec les érosions internes • Tester les érosions externes par rapport à la carte Carte d’occlusion 55 Modification de l’algorithme • Construire une carte d’occlusion avec les érosions internes • Tester les érosions externes par rapport à la carte Carte d’occlusion Visibles 56 Modification de l’algorithme • Construire une carte d’occlusion avec les érosions internes • Tester les érosions externes par rapport à la carte Carte d’occlusion Visibles 57 Modification de l’algorithme • Construire une carte d’occlusion avec les érosions internes • Tester les érosions externes par rapport à la carte Carte d’occlusion Visibles 58 Modification de l’algorithme • Construire une carte d’occlusion avec les érosions internes • Tester les érosions externes par rapport à la carte Carte d’occlusion Visibles 59 Modification de l’algorithme • Construire une carte d’occlusion avec les érosions internes • Tester les érosions externes par rapport à la carte Visibles Cachés Carte d’occlusion 60 Avantages & inconvénients Deux passes de rendu (carte + tests) Tests faisables par le processeur graphique Complexité linéaire Coût mémoire linéaire Objets Érosion exactes 1 passe Érosion approximatives 2 passes Pré-calcul de visibilité 61 Érosion approximatives • Voxelisation de l’objet – Information volumique [SDDS00] – Représentation adaptée [DM01] • Érosion sur les voxels – Simple – Robuste et rapide 62 Voxelisation 63 Voxelisation 64 Voxelisation 65 Érosion de voxels par un cube © = = © © 66 Érosion de voxels par un cube O ª (X ©Y) = (O ª X) ª Y ª = ª ª ª 67 Érosion 1D • De la moitié d’un voxel Changement de topologie Direction d’érosion 68 Érosion 1D • De la moitié d’un voxel Changement de topologie • De moins de la moitié Direction d’érosion Topologie conservée 69 Érosion de voxels par un cube Axes alignés ª = ª ª ª 70 Érosion de voxels par X quelconque Si X ½ Y alors O ª Y ½ O ª X ª Érosion ) externe Cellule X ª Érosion ) interne voxels 71 Démo • Érosion de voxels • Pré-calcul de visibilité 72 Bilan • Formalisme et nouveau théorème – Réduction bloqueurs et bloqués • Voxelisation par objet – Orientation adaptée – Discrétise pas le vide • Travail dans l’espace image – Fusion implicite des ombres et pénombres – Accélération • Matérielle : processeurs graphiques • Logicielle : combinés avec d’autres algorithmes de visibilité 73 Prochaine étape… On sait ce qui est visible Comment l’afficher? 74 Plan de la présentation • Problématique • Calcul de visibilité – Travaux précédents – Contributions • Niveaux de détails – Travaux précédents – Nuages de Billboards • Conclusion 75 Niveaux de détails • Simplification de maillage •Clusterisation [RB93,LT97] •Decimation of Triangle Meshes [SZL92] •Hierarchical Dynamic Simplification [LE97] •Re-tiling [Tur92] •Progressive Meshes [Hop96,PH97] •Re-tiling [Tur92] •Quadric Error Metrics [GH97] •Voxel based reconstruction [HHK+95] •Out of Core Simplification [Lin00] •Multiresolution analysis [EDD+95] •Superfaces [KT96], face cluster [WGH00] 76 Limitations • Contraintes sur le modèle • Contrôle de l’erreur – Simplification enveloppes [CVM96] – Permission Grids [ZG02] – Image driven [LT00] • Gestion des attributs (textures et couleurs) – Intégration métrique [GH98][Hop99] – Re-génération [CMRS98,COM98] • Simplification extrême – Sillouhette Clipping [SGG+00] 77 Rendu alternatifs • Rendu à base d’images – Lightfield,Lumigraph [LH96,GGRC96] – Imposteurs [DSSD99] – Relief Textures [OB00] • Rendu à base de point – Surfels [PZBG00] – Pointshop 3D [ZPKG02] 78 Plan de la présentation • Problématique • Calcul de visibilité – Travaux précédents – Contributions • Niveaux de détails – Travaux précédents – Nuages de Billboards • Conclusion 79 Nuage de Billboards • Nouvelle représentation • Utilisée pour la simplification extrême 80 Billboard • Solution classique [RH94] • Généraliser à beaucoup de plans • Construction automatique 81 Vue d’ensemble • Approximer la forme par un ensemble de plans • Projeter le modèle sur ces plans ) textures • L’enchevêtrement des textures restitue l’objet 82 Principe modèle polygonal 3D 83 Principe Simplification par des plans 84 Principe • Déplacer les sommets P Déplacement autorisé pour P 85 Principe • Projeter les polygones sur des plans Plan valide Polygone 86 Principe • Combien de plans? Quels plans? 87 Aperçu • C’est un problème d’optimisation • Mesurer l’intérêt des plans • Représenter l’ensemble des plans • Choisir un ensemble de plans 88 Aperçu • C’est un problème d’optimisation – algorithme glouton • Mesurer l’intérêt des plans • Représenter l’ensemble des plans • Choisir un ensemble de plans 89 Optimisation • Sur l’ensemble des nuages de Billboards, on définit : – Une fonction d’erreur – Une fonction de coût • Deux stratégies possibles – Orientée budget coût fixé minimiser l’erreur – Orientée erreur erreur maxi fixée minimiser le coût 90 Optimisation • Sur l’ensemble des nuages de Billboards, on définit : – Une fonction d’erreur – Une fonction de coût • Deux stratégies possibles – Orientée budget coût fixé minimiser l’erreur – Orientée erreur erreur maxi fixée minimiser le coût 91 Optimisation • Fonction de coût – Le nombre de plans • Fonction d’erreur – Déplacement du sommet • Dans l’espace objet • Dans l’espace image 92 Aperçu • C’est un problème d’optimisation – algorithme glouton • Mesurer l’intérêt des plans – définition de la densité • Représenter l’ensemble des plans • Choisir un ensemble de plans 93 Fonction de densité • Plan important = faible coût remplace beaucoup de faces • densité = mesure du nombre de faces qu’un plan peut remplacer fonction de densité sur l’espace des plans 94 Validité • Faces pour lesquelles le plan est valide – Respecte la borne d’erreur • Densité = nombre de faces valides Densité de 3 Déplacement autorisé 95 Validité • Faces pour lesquelles le plan est valide – Respecte la borne d’erreur • Densité = nombre de faces valides Densité de 3 Déplacement autorisé 96 Contribution • Pondération par l’aire projetée – Favorise les grandes faces – Favorise les plans parallèles aux faces 97 Aperçu • C’est un problème d’optimisation – algorithme glouton • Mesurer l’intérêt des plans – définition de la densité • Représenter l’ensemble des plans – discrétisation • Choisir un ensemble de plans 98 Discrétisation • Discrétisation de l’espace des plans • Paramétrisation de Hough [DH72] H ρ φ (θ,φ) θ O primal dual 99 Espace dual • plans passant par un point ) une nappe ρ φ θ 100 Espace dual • Plans passant par une sphère ) tranche ρ φ θ 101 Espace dual • Plans passant par une sphère ) tranche • Plans passant par 3 sphères ) intersection de 3 tranches • Discrétisation uniforme ρ φ θ 102 Densité cumulée 103 Aperçu • C’est un problème d’optimisation – algorithme glouton • Mesurer l’intérêt des plans – définition de la densité • Considérer l’ensemble des plans – discrétisation • Choisir un ensemble de plan – Raffinement 104 Itération gloutonne Faces Plans valides pour la face Espace des plans Discrétisation 105 Itération gloutonne Faces Plans valides pour la face Densité + Espace des plans Discrétisation 106 Itération gloutonne Faces Plans valides pour la face Densité + Espace des plans Discrétisation 107 Itération gloutonne Faces Plans valides pour la face Densité + Espace des plans Discrétisation 108 Itération gloutonne Faces Plans valides pour la face Densité + Espace des plans Discrétisation 109 Itération gloutonne Faces Plans valides pour la face Densité + Espace des plans Discrétisation 110 Itération gloutonne Faces Plans valides pour la face Densité + Espace des plans Discrétisation 111 Itération gloutonne Faces Plans valides pour la face Densité + Espace des plans Discrétisation 112 Itération gloutonne Faces Plans valides pour la face Densité + Espace des plans Discrétisation 113 Itération gloutonne Faces Plans valides pour la face Densité + Espace des plans Discrétisation 114 Itération gloutonne Faces pour lesquelles la cellule est valide Cellule de plus Forte densité 115 Itération gloutonne Forte densité Il existe probablement un plan valide pour toutes les faces Comment le trouver? 116 Itération gloutonne On teste le plan central On subdivise Raffinement des densités 117 Génération des textures • À chaque plan est associé une liste de faces • Projection orthogonale sur le plan • Rectangle englobant minimal (CGAL) • Rendu orthogonal ) texture 118 Résultats • Films Exemples Ombres 119 Extension View-dependent • Changement de la fonction d’erreur – Erreur de reprojection M Pcellule P+ θ V T 120 Extension View-dependent • Textures rendues du centre de la cellule • Choix automatique de la résolution • Sauvegarde la matrice de projection 121 Résultats Près vue de la cellule nuage de billboards modèle polygonal zoom 122 Résultats Moyen vue de la cellule nuage de billboards modèle polygonal zoom 123 Résultats Loin vue de la cellule nuage de billboards modèle polygonal zoom 124 Bilan • • • • • Nouvelle représentation Construction automatique Modèles quelconques Critère d’erreur simple / pas de paramètres Simplification extrême 125 Extensions • Optimiser l’utilisation des textures – Prise en compte dans le coût – Compression de textures • Ré-éclairage – Cartes de normales – Pixel shading • Transition • Objets en mouvement 126 Plan de la présentation • Problématique • Travaux précedents • Contributions – Pré-calcul de visibilité – Billboard cloud • Conclusion 127 Conclusion • Nouveaux outils pour le problème posé • Calcul de visibilité – Résultat théorique – Algorithme pratique et simple à mettre en oeuvre • Niveaux de détails – Nouvelle représentation / Algorithme de construction – Simplification extrême / Gestion des attributs • Intégration 128 Questions 129