Presentation.fr

publicité
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
Téléchargement