Modélisation Géométrique

Transcription

Modélisation Géométrique
Modélisation Géométrique
Tamy Boubekeur
Stefka Gueorguieva
12 janvier 2007
2
Sommaire
I Modélisation Géométrique des Surfaces
1 Introduction
1.1
1.2
1.3
1.4
1.5
Description du cours
Motivation . . . . .
Dénition . . . . . .
Thème du cours . . .
Acquisition . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
9
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 9
. 9
. 10
. 10
. 11
Introduction . . . . . . . . . . . .
Diérentes représentations . . . .
Propriétés géométriques de base .
Propriétés topologiques de base .
Isotropie et Anisotropie . . . . .
Quelques constructions simples .
Courbure . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2 Maillages Polygonaux
2.1
2.2
2.3
2.4
2.5
2.6
2.7
7
3 Surfaces Paramétriques
13
13
13
14
15
16
16
16
19
3.1 Enjeux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.2 Bézier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.3 B-Spline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4 Surfaces de subdivision
4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.8
4.9
Présentation . . . . . . . . . . . . . . . .
Schéma . . . . . . . . . . . . . . . . . .
Matrice de subdivision . . . . . . . . . .
Subdivision adaptative . . . . . . . . . .
Traitement géométrique par subdivision
Implémentations . . . . . . . . . . . . .
Temps réel . . . . . . . . . . . . . . . .
Modélisation multi-résolution . . . . . .
Memo . . . . . . . . . . . . . . . . . . .
5 Surfaces Implicites
5.1
5.2
5.3
5.4
Dénition . . . . . . . . . . .
Surfaces implicites à squelette
Visualisation . . . . . . . . .
Application dans l'industrie .
.
.
.
.
3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
25
25
27
29
30
30
30
31
32
33
35
35
36
37
38
4
SOMMAIRE
5.5 Surfaces implicites variationnelles . . . . . . . . . . . . . . . . . . 38
6 Nuages de points
41
7 Partitionnement
45
8 Reconstruction de Surfaces
49
9 Simplication de Surfaces
55
II Modélisation Géométrique des Solides
59
6.1 Origine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
6.2 Dénition et Création . . . . . . . . . . . . . . . . . . . . . . . . 41
6.3 Exploitation du nuage . . . . . . . . . . . . . . . . . . . . . . . . 43
7.1 Structures de Subdivision Spatiale hiérarchique . . . . . . . . . . 45
7.2 Comparaison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
8.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
8.2 Les algorithmes de reconstruction . . . . . . . . . . . . . . . . . . 50
9.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
9.2 Les algorithmes de simplication . . . . . . . . . . . . . . . . . . 57
10 Fondements
10.1
10.2
10.3
10.4
Motivation . . . . . . . . . . . .
Solides . . . . . . . . . . . . . . .
Propriétés des représentations . .
Classication des représentations
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Motivation . . . . . . . . . . . . . . . . . .
Représentation en énumération spatiale . .
Représentation en subdivision spatiale . . .
Représentation en décomposition cellulaire .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
11 Représentations décompositives
11.1
11.2
11.3
11.4
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
61
61
61
62
63
65
65
65
66
67
Première partie
Modélisation Géométrique
des Surfaces
5
Chapitre 1
Introduction
1.1 Description du cours
étude des surfaces 3D et de leurs représentations
étude des traitements géométriques
TP/TD : Pascal Desbarats
CC = projets + présentation article (25%)
exam (25%)
50% restant : seconde partie du cours
1.2 Motivation
1.2.1 CAO - Simulation
origine : Pierre Bézier pour modéliser des voitures
CAO : Conception Assistée par Ordinateur
intérêt : visualisation et simulation
1.2.2 Animation
lm, manga, . . .
1.2.3 Imagerie médicale
1.2.4 Culture - Sauvegarde
visualisation, restauration, . . .
photo 3D de l'objet
1.2.5 Divertissement
jeux
7
8
CHAPITRE 1.
INTRODUCTION
1.3 Dénition
1.3.1 Modélisation
décrire un objet ou un phénomène par un ensemble de nombres, fonctions,
limites, . . .
sciences transverses : biologie, physique, chimie, mathématiques appliquées, sociologie, écologie
au c÷ur de la science informatique : les ordinateurs ne savent manipuler
qu'un ensemble ni de nombres
1.3.2 Modélisation Géométrique
décrire la forme d'un objet par un ensemble ni de valeur
1.3.3 En pratique
1. choix d'une représentation
2. spécication des valeurs des caractéristiques de cette représentation pour
un objet donné
3. Manipulation de ces valeurs
manipulation de la forme de l'objet
l'ordinateur devient un crayon virtuel
Note : la complexité de la représentation est diérente de la complexité de
l'objet.
Il faut adapter la représentation à l'objet que l'on veut représenter.
1.3.4 Exemple
Quelle représentation choisir pour une droite dans un espace euclidien à 2
dimensions
1. représentation paramétrique : 1. représentation implicite :
y = ax + b
a0 x + b0 y + c0 = 0
2. caractéristiques : {a, b}
2. caractéristiques : {a0 , b0 , c0 }
La représentation implicite a besoin de plus de caractéristiques mais il est
plus facile de faire certains calculs avec.
Il faut adapter la représentation à l'utilisation.
1.4 Thème du cours
les surfaces 3D représentions et traitement
interface volume - volume
ce que l'on voit d'un objet → informatique graphique
but
1. acquérir une vue globale de la modélisation géométrique
2. comprendre les principes mathématiques de base
3. expérimenter leur implémentation
1.5.
ACQUISITION
1.5 Acquisition
9
10
CHAPITRE 1.
INTRODUCTION
Chapitre 2
Maillages Polygonaux
2.1 Introduction
Un polygone est un n-uplet de sommets. Exemples : triangle, quadrangle,
pentagone, . . .
La plupart des maillages sont triangulaires ou quadrangulaires.
Historiquement, il s'agit de la première représentation. Elle consiste en un
ensemble de facettes dans l'espace.
Inconvénient : problèmes de qualité pour représenter des surfaces lisses ; il
faut beaucoup de polygones.
Avantage : achage en temps réel sur les machines courantes (le GPU ne
prend que des triangles)
Cette représentation est donc utilisée surtout pour les jeux vidéos.
Ici on va parler d'une masse de polygones assez importante pour représenter
éventuellement des surfaces lisses.
2.2 Diérentes représentations
2.2.1 Soupe de polygone
Présentation
Pour chaque triangle, on donne à la suite les coordonnées de ses trois sommets.
Exemple
A(xA , yA , zA ) B(xB , yB , zB ) . . .
Sp = {xA , yA , zA ,
xB , yB , zB ,
xC , yC , zC ,
11
12
CHAPITRE 2.
MAILLAGES POLYGONAUX
xA , yA , zA ,
xD , yD , zD ,
xB , yB , zB }
Avantages
on peut acher de suite
on peut acher n'importe quelle conguration de triangle
en un sommet, on peut avoir autant de propriétés que de triangles
on peut eectuer des traitements par ux
Inconvénients
on écrit plusieurs fois la même chose : redondance
attention quand on veut déplacer un point
2.2.2 Maillages indexés
Présentation
graphe avec géométrie et topologie séparées
une liste de sommets (V )
une liste de relation topologique
arêtes (Edge E)
faces (F)
en pratique, {V, F } (OpenGL). On appelle V le plongement géométrique et
F la topologie.
V est représenté par une liste de réels (oat) et F par une liste de n-uplets
d'indices (unsigned int).
Exemple
Les sommets : A(xA , yA , zA ), B(xB , yB , zB ), C(xC , yC , zC ), D(xD , yD , zD )
Les faces : t1 (A, B, C), t2 (A, D, B)
2.3 Propriétés géométriques de base
propriétés associées aux sommets (le plus souvent), arêtes ou faces →
Attributs
Attributs de sommets
position (p)
vecteur normal (n)
coordonnées paramétriques ((u,v))
apparence : couleur, indice de matériel, . . .
paramètres physiques pour la simulation
...
Arêtes
plis vifs (discontinuité du gradient)
Faces
couleur
2.4.
13
PROPRIÉTÉS TOPOLOGIQUES DE BASE
2.3.1 Normales
essentielles pour le rendu
BRDF
stockées par sommets
utiles pour certains traitements
géométriques
simplication
calcul
moyennes des normales des
faces incidentes
moyennes pondérées par les
angles des arêtes incidentes
plus robustes pour les distributions de triangles non uniformes
nf =
(p1 − p0 ) ∧ (p2 − p0 )
k(p1 − p0 ) ∧ (p2 − p0 )k
P
αi ni
ṅ = Pi
i ni
n=
ṅ
kṅk
2.3.2 Coordonnées paramétriques
(u, v) ∈ R2 . Par convention : (u, v) ∈ [0, 1]2
Dénition d'une propriété de surface à partir d'une fonction bivariée :
f:
R2
→
(u, v) →
Rn
c
Dénition de coordonnées paramétriques continues sur l'ensemble des sommets d'un maillage : paramétrisation.
2.4 Propriétés topologiques de base
2-variété (2-manifold) : variété 2-dimensionnelle (ie surface) : le voisinage
de tout point est homéomorphe à un disque (un demi-disque pour les
sommets de bord)
exemple : une arête commune à 3 triangles provoque une non-variété Genre ( Genius ) : nombre de trous au sens d'Euler, nombre maximum
de courbe de coupe sur la surface maintenant une unique composante
sphère : genre 0
Tore : genre 1
...
Pour calculer le genre : nombre de lignes refermées que l'on peut tracer
sur la surface sans que la surface se coupe en plusieurs parties.
14
CHAPITRE 2.
MAILLAGES POLYGONAUX
2.5 Isotropie et Anisotropie
Isotropie : les polygones ont une forme similaire sur tout le maillage
triangles quasi-équilatéraux
traitement géométrique numériquement plus stables
neutralité pour la déformation
aucune restriction sur la taille
Anisotropie : la forme des polygones suit la géométrie de la surface
arêtes alignées sur les directions de courbures principales
lignes de ots
distance géodésique (=longueur du chemin le plus court de la surface)
Notion d'optimalité du maillage
2.6 Quelques constructions simples
extrusions forme dénie par une courbe 2D et une trajectoire 3D
révolution forme dénie par la révolution d'une courbe de prol 2D
cylindre généralisé combinaison d'une extrusion et d'une révolution (swept
surface ou surface de balayage)
3 courbes : coupe, trajectoire et prol
basée sur le repère de Frénet
2.7 Courbure
2.7.1 Courbure d'une courbe
1
γ=
r
r = ∞;
γ=0
r = 0;
γ=∞
norme de dérivée seconde de la
courbe (accélération)
inverse du rayon du cercle osculateur (le plus grand cercle tangent en un point sans que ce cercle
coupe la courbe)
intuitivement : à quel point la
ligne est courbée en un point courbure algébrique
orientée/signée
utilisation du repère de Frénet
2.7.
15
COURBURE
2.7.2 Repère de Frénet
v=
un problème récurrent : faire évoluer un repère euclidien le long
d'une courbe
repère de Frénet en P : T, N, B
T : tangente à la courbe en P
N : vecteur normal à la courbe
en P
B : vecteur binormal à la
courbe en P
courbure :
γ=
a=
dp
du
d2 p
du2
N=
T =
=
v
kvk
v∧a
kv ∧ ak
T ∧B
~
T ∧ Bk
kv ∧ ak
kvk3
Note : la variation de B est appelée la torsion. Elle est nulle pour une courbe
plane.
2.7.3 Courbure d'une surface
courbures principales
courbure maximum : γmax
courbure minimum : γmin
courbure moyenne
γ=
γmin + γmax
2
courbure gaussienne
γG = γmin × γmax
Si γG = 0, la surface est développée (propriété d'isométrie)
2.7.4 Courbure d'un maillage
. . . plus dicile
Formellement
courbure gaussienne nulle à l'intérieur des polygones (zone parfaitement
plane)
courbure gaussienne innie sur les arêtes des polygones (plis vifs)
Mais
maillage = échantillonnage d'une surface lisse par morceaux
courbure de la surface lisse sous-jacente ?
optimiser un patch paramétrique prêt du maillage, et considérer ses
propriétés diérentielles
chercher le cercle osculateur dans un voisinage
calculer le tenseur de courbure sur un voisinage
16
CHAPITRE 2.
MAILLAGES POLYGONAUX
2.7.5 Méthode alternative à la courbure
On estime la courbure par
2π −
X
i
αi
Chapitre 3
Surfaces Paramétriques
3.1 Enjeux
Surface lisse ?
exemples :
formes organiques (visage)
surface d'un liquide
carrosserie d'une voiture
courbe (dessin vectoriel)
Formellement, c'est une surface de continuité C k avec k > 0
Besoin d'une représentation spécique
Continuité
Maillages : C 0
C T : continuité du plan tangent
C 1 : continuité de la normale
C 2 : continuité des reets sur la surface
Pas d'interprétation directe pour les ordres supérieurs
Continuité par morceaux : surface globalement lisse, avec des singularités
(plis vifs, pointes, coins)
Cette courbe est C T , mais pas C 1 .
En eet, les tangentes sont continues mais pas les normales.
Contrôle
Paramètres de contrôle d'une surface/courbe lisse
faible nombre
intuitifs
graphiques/visualisables
Idée
utiliser un réseau de points de contrôle
17
18
CHAPITRE 3.
SURFACES PARAMÉTRIQUES
un polygone pour manipuler une courbe lisse
une grille pour manipuler une surface lisse
paramétrer la surface lisse sur le réseau de contrôle
⇒ Spline
Spline
S : Rm → Rn m ≤ n
objet paramétrique dénissant
une variété
û → x̂
énumération de tous les points de la surface par itération sur les paramètres
En pratique
domaine de dénition des paramètres réduit : û ∈ [0, 1]m
courbe 2D : c(u) = {x, y}
courbe 3D : c(u) = {x, y, y}
surface 3D : s(u, v) = {x, y, z}
Réseau de contrôle
un ensemble réduit de points 2D ou 3D pour piloter une courbe ou une
surface spline
c est injective
c est paramétrée par le polygone P := f P (u)
Problème : comment construire la fonction c à partir des points de P ?
3.2.
19
BÉZIER
3.2 Bézier
3.2.1 Courbe de Bézier
Inventée par Pierre Bézier pour modéliser des carrosseries avec des splines.
une courbe de Bézier pilotée par un ensemble de N + 1 points de contrôle
{p0 , . . . , pN } s'écrit
c(u) =
N
X
p k BN
k (u)
k=0
Les BN
k sont les polynômes de Bernstein
BN
k (t) =
N
k
(1 − t)N −k tk
avec
N
k
=
N!
k!(N − k)!
les polynômes de Bernstein correspondent au développement de ((1 − t) +
t)N
Quelques propriétés remarquables
invariance ane : translation (resp rotation et étirement) par translation
(resp rotation et étirement) des points de contrôle, sans déformation
introduite.
interpolation des extrémités (P0 et PN ), approximation pour les autres
points
une courbe de Bézier est entièrement contenue dans la coque convexe
de ses points de contrôle : donc dans la boite englobante de P →
culling/cliping pour le rendu
dénition globale : chaque point de contrôle inuence la totalité de la
courbe
Le degré d'une courbe de Bézier correspond au degré de son polynome ;
une courbe de Bézier de degré n a n + 1 points
3.2.2 Patch de Bézier
Idée : considérer une surface comme dénie par le balayage d'une courbe
dans l'espace : la courbe se déforme pendant qu'elle se déplace pour épouser la surface
une courbe de Bézier avec des points de contrôle variant en fonction d'un
second paramètre : cette variation peut elle-même s'exprimer par une
courbe de Bézier :
pi (u) =
N
X
k=0
pik BN
k (u)
20
CHAPITRE 3.
SURFACES PARAMÉTRIQUES
Un patch de Bézier est déni par le produit tensoriel de ces courbes :
p(u, v) =
M X
N
X
N
pik BM
i (u)Bk (v)
i=0 k=0
les patchs de Bézier héritent des propriétés des courbes de Bézier
En pratique :
patch 4 × 4
ensemble de patchs pour approximer correctement une surface
3.2.3 Algorithme de Casteljau
Cet algorithme permet d'évaluer une courbe spline
sans la calculer explicitement. Il consiste à partir du
premier segment et à se déplacer d'un pas constant
vers le dernier segment. On voit alors apparaître la
courbe. Plus le pas est petit, plus l'approximation
est ne.
3.3 B-Spline
3.3.1 Courbe
courbe algébriquement polynomiale par morceaux
contrôle local par construction à partir de la courbe de Bézier
B-spline de degré n
Construite à partir de courbes de Bézier de degré n
2 courbes de Bézier consécutives ont tous leurs points en commun sauf
le premier point de la première courbe
le dernier point de la deuxième courbe
B-spline =
liste de points de contrôle +
vecteur de n÷uds
3.3.
21
B-SPLINE
3.3.2 Passage de Bézier à B-spline
[ABC] : point de Bézier
[P QR] : points de contrôle de la B-spline
Q=B
P symétrique de B par rapport à A
R symétrique de B par rapport à C
[P Q] : position et tangente en A
B-Spline uniforme de degré 2
Continuité C 1 au point de raccordement C
Note : B-spline de degré n = continuité C n−2 ; répéter un point de
raccordement correspond à faire diminuer d'un ordre la continuité au
point
3.3.3 Vecteur de N÷uds
une B-spline uniforme est dénie sur l'intervalle [0, N ] pour N courbes
de Bézier sous-jacentes. On normalise la somme des intervalles sur [0, 1] :
c'est uniforme.
B-spline non-uniforme
première courbe de Bézier sous-jacente dénie sur [0, t0 ]
deuxième courbe de Bézier sous-jacente dénie sur [t0 , t1 ]
...
[t0 , t1 , . . . , 1] : vecteur de n÷uds de la courbe B-spline
3.3.4 NURBS
Non Uniform Rational B-Spline
Rationnel = coecients de pondération sur les polynômes de Bernstein
pour reproduire d'autres types de coniques que les paraboles
meilleur contrôle local de la courbe : courbure
Les NURBS permettent de représenter toutes les courbes et toutes les surfaces pourvu que le polygone de contrôle soit une grille (genre ≤ 1)
3.3.5 Rendu d'une surface spline
trivial !
itérer sur les paramètres (u, v) : pour toute valeur (ui , vj ) dessiner le quadrangle ((ui , vj )(ui+1 , vj )(ui+1 , vj+1 )(ui , vj+1 ))
Rendu ecace en temps réel :
22
CHAPITRE 3.
SURFACES PARAMÉTRIQUES
Vertex Shader pour évaluation de la spline en tout point (notion de déplacement procédural)
topologie xe, encodée dans la mémoire graphique(VBO)
voir l'article Generic Mesh Renement
3.3.6 Surface B-spline et NURBS
Même principe que pour les patchs de Bézier : produit tensoriel de courbes.
Les grilles de contrôles impliquent des restrictions topologiques.
On emploie des surfaces de subdivision.
Chapitre 4
Surfaces de subdivision
4.1 Présentation
4.1.1 Pourquoi ?
Application
animation
FX
jeux vidéos
CAO
D'où viennent les surfaces de subdivision
problème de départ : comment raner le réseau de contrôle d'une surface
spline sans modier la géométrie de surface ? type de ranement souhaité : local, récursif, ecace et simple
idée n°1 : ne plus considérer la surface spline et travailler uniquement avec
le réseau de contrôle et ses règles de ranement
idée n°2 : sans surface spline à maintenir, considérer une topologie arbitraire pour le réseau de contrôle
idée n°3 : ne plus l'appeler réseau de contrôle mais surface de subdivision 4.1.2 Surface de Subdivision
Dénition
fondamentalement : maillage de base (possiblement marqué) + règles de
subdivision
un ensemble de règles de subdivision = un schéma de subdivision
évaluation récursive
1. ranement linéaire
2. lissage
3. ranement linéaire
4. lissage
23
24
CHAPITRE 4.
SURFACES DE SUBDIVISION
5. . . .
évaluation paramétrique
1. construire une surface spline pour chaque polygone de base en fonction de son voisinage et du schéma de subdivision
2. évaluer la surface limite de subdivision en évaluant la surface spline(coordonnées
barycentriques)
Vocabulaire
sommet pair : sommet existant à la précédente étape de subdivision
sommet impair : sommet insérer à l'étape courante
sommet régulier : valence 6 pour les maillages triangulaires, 4 pour les maillages
quadrangulaires
sommets extraordinaires : tous les autres
schéma primal : subdivision de faces
schéma dual : subdivision de sommets
Masque de subdivision
une représentation graphique simple d'un schéma de subdivision
Critères de classication des schémas de subdivision
interpolation ou approximation
types de polygones du maillage de base : triangles, quadrangles, pentagones, hybrides, . . .
localité : connaissance nécessaire du voisinage d'un polygone pour le subdiviser (anneaux des 1-voisins, 2-voisins)
continuité de la surface limite : analyse de la matrice de subdivision pour
les sommets réguliers et extraordinaires
primal ou dual
Classication
primal
approximé
interpolé
dual
approximé
Maillage Triangulaire Maillage quadrangulaire
Loop (C2)
Catmull-Clark (C2)
Buttery modié (C1)
Kobbelt (C1)
Maillage Triangulaire Maillage quadrangulaire
Doo-Sabin (C1)
√
3 (C2)
Mid-Edge
Bi-Quartic (C2)
4.2.
25
SCHÉMA
4.2 Schéma
4.2.1 Schéma de Loop
Schéma approximant pour maillages triangulaires
continuité C2 partout sauf aux sommets extraordinaires (C1)
ranement primal
Marquage (sommets, arêtes, faces) et règles exceptionnelles
bords
plis vifs et semi-vifs
coins
points singuliers
contrainte par la normale
Les masques de Loop :
Sommets pairs
Les coecients des Pir sont αnn et
celui de Qr est (1 − αn ) avec n le
nombre de voisins et
Sommets pairs
αn =
1
2π
(40 − (3 + 2 cos( ))2 )
64
n
D'où
Qr+1 = (1 − αn )Qr +
n
X
αn
i=0
n
Pir
26
CHAPITRE 4.
SURFACES DE SUBDIVISION
4.2.2 Le schéma de Catmull-Clark
Schéma approximant pour maillages quadrangulaires
C2 partout sauf aux sommets extraordinaire (C1)
ranement primal
règles spéciales : arêtes/plis vives, coins, points singuliers ( pointes )
Face
n
f=
1X
vi
n i
Arête
e=
v1 + v2 + f1 + f2
4
Sommet
vi+1 =
n−2
1 X
1 X
vi + 2
ej + 2
fj
n
n j
n j
4.2.3 Le schéma de Buttery modié
Schéma interpolant pour maillage triangulaire
C1 partout (version modiée)
Sommets impairs extraordinaires
sommets impairs modiés
Bords et arêtes vives
k = 3 s0 =
k = 4 s0 =
k>5
3
8
5
12
s1,2 =
s2 =
−1
8
−1
12
s1,3 = 0
1 1
2iπ 1
4iπ
( + cos
+ cos
)
4 4
n
2
k
Note : comme ce schéma est interpolant, il y a uniquement des masques de
sommets impairs
4.3.
27
MATRICE DE SUBDIVISION
4.2.4 Racine de 3
√
3
un schéma triadic (ranement 1-3) pour maillage triangulaire (rotation
de la topologie locale)
étape de ranement plus ne que loop
arêtes vives
subdivision adaptative simple
Insertion des sommets impair : on prend le
barycentre du triangle :
q=
1
(pi + pj + pk )
3
Relaxation des sommets pairs : on fait une
interpolation entre la position d'origine et le
barycentre du 1-voisinage :
S(p) = (1 − αn )p + αn
avec
αn =
n−1
1X
pj
n i=0
4 − 2 cos( 2π
n )
9
4.3 Matrice de subdivision
un schéma de subdivision peut être exprimé par une matrice M de poids
w
M est creuse pour les schémas usuels
M ne doit pas être utilisée pour l'implémentation
permet l'étude analytique de
la courbure
la continuité de la surface limite
P i+1 = M P i

w00
 w10

 ..
 .
0
w01
w11
···
···
0
···
..
.
..
.

0

0 

..  
. 
0
  i+1
pi0
p0
 pi+1
pi1 
  1
..  =  ..
.   .
pin
pi+1
n





Note : en fait un schéma est exprimé par 2 matrices, une de ranement pour
insérer les nouveaux sommets, et une de convergence pour déplacer les sommets
28
CHAPITRE 4.
SURFACES DE SUBDIVISION
existants (la plus intéressante à étudier)
4.4 Subdivision adaptative
subdiviser à diérentes profondeurs les polygones d'un maillage
avantage : contrôle/réduction du nombre de polygones selon divers critères
(courbe, visibilité, niveau de détails)
inconvénients
plus dicile à analyser
plus dicile à implémenter
Attention : il faut garantir que l'on n'introduit pas de trous dans la variété
( craquelures entre polygones subdivisés à diérentes profondeurs)
4.5 Traitement géométrique par subdivision
. . . nombreux, avec en particulier
conversion entre un maillage et un ensemble de splines
reconstruction
multirésolution (analyse/déformation/rendu)
paramétrisation
compression
simplication
remaillage
4.6 Implémentations
Forets de quad-tree
Chaque polygone du maillage de base et une racine
ranement du polygone = quad-tree
Avantage : subdivision adaptive possible
Inconvénients : lourd et complexe
Table de ranement
1. pré-calculer les tables de poids pour un profondeur et une valence donnée
2. remplacer chaque polygone du maillage de base par un polygone rané
à la profondeur choisie, en utilisant la table pour calculer la position des
sommets ranés en fonction des voisins d'origine
Avantage : très rapide et adaptable sur le GPU
Inconvénient : pré-calcul nécessaire pour chaque valence et chaque profondeur
Hash-table
1. Construire une hash-table
indexé par les arêtes du maillage
stockant les sommets nouvellement insérés
4.7.
TEMPS RÉEL
29
2. parcourir les polygones, en accumulant les contributions aux arêtes dans
la hash-table (poids du masque)
3. remailler : remplacer chaque polygone par 4 nouveaux polygones, en utilisant les sommets pairs et les sommets impairs (stockés dans la hash-table)
Avantage : très facile à implémenter, fonctionne sur divers schémas
Inconvénients : pas de structure multirésolution (conversion maillage à maillage)
Rendu sur GPU
1. Subdiviser 2 fois sur le CPU
2. décomposer la surface obtenue en morceaux centrés sur les sommets d'origine, avec leurs 2-couronnes de sommets insérés
3. déplier les morceaux en spirale (1 D)
4. les convertir en texture
5. rendre la texture plaquée sur un QUAD, à un e résolution supérieure :
remplacer le noyau de rééchantillonage de texture par le masque de subdivision
6. réitérer jusqu'à la profondeur choisie
7. reconvertir les textures résultantes en maillages (1 pixel = 1 sommet)
Avantage : (presque) entièrement sur le GPU
Inconvénient : pas élégant, usage intensif du rendu multi-passe et du fragment
shader
4.7 Temps réel
4.7.1 subdivision de surface en temps réel
implentation possible :
utiliser l'une des implémentation à base de tables
implémentation sur le GPU
. . . mais mal adaptées
gestion d'une topologie dynamique 4.7.2 Curved PN Triangles
ranement de maillage temps-réel
alternative aux surfaces de subdivision interpolante
produit un ranement de maillage visuellement lisse de manière purement
locale
ranement basésur les positions et vecteurs normaux aux sommets d'un
triangle
pas continuité géométrique aux arêtes, mais une continuité visuelle
Principe
gnérer un champ de déplacement Cd et un champ de normales Cn sur
chaque triangle en créant 2 patches de Bézier piloté par les positions et
les normales des sommets du triangle
30
CHAPITRE 4.
SURFACES DE SUBDIVISION
un patch cubique pour Cd
un patch quadratique pour Cn
générer un ranement linéaire du triangle (tesselation) et plonger ses positions dans Cd et ses normales dans Cn
dessiner les polygones résultants en lieu et place du triangle original
Avantages
pas de topologie nécessaire
compatible avec le format de données du GPU
bi = di + ei
Inconvénients
d est donné par les coordonnées ba dégré de continuité à 0 en général i
rycentriques :
→ aspect lisse obtenu via Cn
di = pj + (pk − pj )/3
ei est donné par la projection sur
le plan tangent (PN) du sommet le
plus proche
ei =
Y
(pj , nj , di )nj
Extension : Scalar Tagged PN Triangle
gérer les singularité
4.8 Modélisation multi-résolution
approximer une surface échantillonnée (maillage ou nuage de points) par
une surface de subdivision
idée similaire aux ondelettes
M i+1 = Sub(M i ) + Di+1
4.9.
31
MEMO
4.9 Memo
1978
1987
1994
1995
1996
1998
2000
2001
01-05
20 ? ?
premiers schémas dont celui de CatmullClark(quadrangles)
schéma de Loop : schéma approximant pour maillages
triangulaires
modication de Loop (plis vifs, bords, pondération)
dans le cadre de reconstruction de surface
analyse multirésolution de maillages arbitraires
résultats théoriques sur la continuité
surfaces de subdivision variationnelles
surfaces de subdivision pour l'animation de personnages
surfaces splines sous-jacentes découvertes pour les schémas de Catmull-Clark et Loop
cours SIGGRAPH, seconde version (LE point d'entrée)
contrôle des
√ singularités, contrôle de la normale
schémas 3, ranement triadique, approche constructive
surfaces de subdivision déplacées
curved PN Triangle, une fausse subdivision, plus ecace
et visuellement plausible
approches combinées
schémas de subdivision pour maillages hybrides
véritable implémentation matérielle (premiers pas vers
le geometry shader de DirectX 10, véritable étage de
subdivision dans le ppeline DirectX 11)
véritable contrôle pour la normale
subdivision pour les représentations sans maillages
32
CHAPITRE 4.
SURFACES DE SUBDIVISION
Chapitre 5
Surfaces Implicites
Origine : Jim Blier, 1982 : modéliser des molécules 3D pour un documentaire
TV de vulgarisation
5.1 Dénition
représentation volumique de surfaces
dénie à partir d'une fonction
f : R3 → R
[x, y, z] → v
dénit l'isosurface Sv associée à l'isovaleur v
Par convention
v < 0 : le point est à l'intérieur de l'objet
v > 0 : le point est à l'extérieur de l'objet
v = 0 : le point est sur la surface de l'objet
Mais d'autres iso-valeurs peuvent être considérées pour une description du
volume (notion de couches).
Fonction de la surface implicite ≈ fonction de chaleur.
5.1.1 Exemple : la sphère
Propriété : centre c et rayon r.
Fonction de la surface implicite associée :
fcr (x, y, z) = r −
p
(x − xc )2 + (y − yc )2 + (z − zc )2
L'ensemble des points de la surface de la sphère sont les points pour lesquels f
vaut 0.
33
34
CHAPITRE 5.
SURFACES IMPLICITES
5.1.2 Inconvénients
La surface est implicitement dénie :
on ne peut pas en général itérer sur les points de la surface
on peut seulement tester si un point est à l'intérieur, sur la surface ou à
l'extérieur de l'objet
pas directement visualisable
topologie de surface contrainte : pas de bords ni de trous sur la surface
5.1.3 Avantages
Volumes consistants :
opérations booléennes triviales (∪, ∩, r)
test de collision trivial
surfaces lisses
topologie du volume arbitraire (eg genre de la surface)
5.2 Surfaces implicites à squelette
contrôle via l'équation analytique de la surface → trop peu de degré de
liberté pour dénir une forme complexe
composition par squelette
fS =
X
fi
i
avec fi des fonctions de décroissance de distance (p, ci )
5.3.
VISUALISATION
35
5.2.1 CSG
Géométrie Constructive des Solides basée sur un ensemble d'opérateurs ensemblistes (union, intersection, soustraction)
idée : dénir une forme complexe à partir de formes simples et d'opérateurs
binaires
la forme obtenue est organisée en un arbre binaire complet
n÷uds = opérateurs
feuilles = formes simples (implicites)
5.3 Visualisation
5.3.1 Ray-tracing
assez facile à implémenter : test d'intersection rayon-objet direct
lent
5.3.2 Visualisation temps réel
extraction d'une surface polygonale
on ne peut pas itérer sur la surface à la manière d'une spline
on ne peut donc pas générer facilement des polygones pour l'achage de
la surface
5.3.3 Marching Cube
un algorithme d'extraction de surface polygonale à partir d'une surface
implicite
36
CHAPITRE 5.
SURFACES IMPLICITES
Idée :
plonger la surface dans une
grille 3D
évaluer la valeur de la fonction
implicite à chaque sommet de
la grille (n3 sommets)
pour chaque cube dans la
grille :
ses 8 sommets ont des valeurs
positives ⇒ le cube est à l'intérieur de l'objet
ses 8 sommets ont des valeurs négatives ⇒ le cube est
à l'extérieur de l'objet
sinon ⇒ le cube est intersecté
par la surface implicite
Pour chaque cube intersecté, la conguration des valeurs (positives/négatives)
donne un placement de la surface (position exacte par interpolation sur
les arêtes)
8 sommets ⇒ 256 congurations possibles (on ramène à 16 par symétrie)
congurations rangées dans une table (brevetée !)
chaque conguration génère un petit nombre de polygones dans le cube,
approximant la surface implicite
la somme de ces ensembles forme un maillage approximant la surface
implicite à la résolution de la grille
on peut regarder le voisinage pour lever les ambiguïtés
5.4 Application dans l'industrie
surfaces implicites dans les modeleurs : metaballs
principales utilisations
uide
formes molles (muscles)
réparation de maillage
nombreuses application en imagerie médicale
adéquation aux formats de données
conversion voxels → surfaces implicites simples
5.5 Surfaces implicites variationnelles
surface implicite minimisant une fonction d'erreur
permet la génération automatique d'une surface implicite à partir de données échantillonnées
5.5.
SURFACES IMPLICITES VARIATIONNELLES
37
38
CHAPITRE 5.
SURFACES IMPLICITES
Chapitre 6
Nuages de points
6.1 Origine
6.1.1 Contexte 1
1980
résolution de l'écran ' 500 000 pixels
∼ milliers de polygones
Plusieurs centaines de pixels par polygone
2000
résolution de l'écran ' 1 500 000 pixels
∼ dizaines/centaines de millions de polygones
Plusieurs centaines de polygones par pixel
contexte 2
Modélisation automatique : remplacer les infographistes par des périphériques d'acquisition
scanner Laser (géométrie)
périphérique type LightStage (apparence)
→ génération d'un ensemble non organisé d'échantillons sans connectivité
explicite
Digital Michelangelo Project : David 22 personnes
30 jours
précision : 0.29mm
2 milliards d'échantillons
7 000 images 2.5D
32 Go de données
6.2 Dénition et Création
6.2.1 Nuage de points
un ensemble non-organisé d'échantillons
échantillons = surfel (SURFace ELement)
39
40
CHAPITRE 6.
NUAGES DE POINTS
nuage de points ou ensemble de surfels surfel = position + attributs
normale
apparence = couleurs, matériaux, . . .
physique = densité, friction
acquisition = facteur de conance Création :
échantillonnage d'un modèle numérique existant
acquisition d'un objet réel
6.2.2 Échantillonnage d'un modèle
Entrée : NUBS, maillages, Surfaces de subdivision, Surfaces implicites
Sortie : nuage de points
Échantillons : basé sur l'analyse locale de la géométrie et éventuellement
de l'apparence
courbure et anisotropie
bruits
variance des matériaux
6.2.3 Acquisition d'un modèle
6.2.4 Normale
une propriété importante pour la visualisation et le traitement géométrique
sur un nuage de points
échantillonnage d'un modèle numérique : exemple : forme paramétrique
du gradient pour une surface spline
acquisition : Shape from Shading estimation
gradient des images de profondeur si disponible
problème lorsqu'on a qu'un nuage de points, sans autre information
solution : analyse en composante principale
Estimation par Analyse en Composante Principale
Pour chaque point
6.3.
EXPLOITATION DU NUAGE
41
collecter un k-voisinage Vk
pour l'ensemble des points de Vk , exprimer leurs coordonnées dans le
repère du barycentre de Vk (covariance)
composer la matrice de covariance M par produit externe des coordonnées des points (matrice 3 × 3)
extraire les valeurs propres et vecteurs propres de M
Le vecteur propre associé à la plus petite valeur propre ore une bonne
approximation de la normale.
Les 2 autres vecteurs propres peuvent éventuellement servir à analyser la
courbure de la surface localement.
6.3 Exploitation du nuage
6.3.1 Traitement sans maillage
Traitement géométrique
simplication
échantillonnage
collision
lissage
...
→ besoin d'une dénition de surface continue et lisse à partir d'un nuage de
points : ⇒ Surfaces de points MLS
6.3.2 Surfaces MLS
Dénition
Moving Least Square
approximation des moindre carrés glissants
dénir une variété continue par morceaux pour tout nuage de points
localement, en ne considérant que les points du voisinage
surface MLS : dénir une surface via un opérateur de projection
surface : ensemble de points stationnaires par l'opérateur
Construction
Méthode pour atteindre une surface de points par projection MLS depuis p
1. évaluer un plan de référence local Hp
2. calculer les coecients d'un polynôme Gp déni sur Hp
3. projeter p sur Gp : p0 = Gp (0)
4. évaluer la normale en p0
42
CHAPITRE 6.
NUAGES DE POINTS
Plan de référence
{q, n} tel que min
P
i hq
− pi , ni2 Θ(kq − pi k)
minimisation
des moindres carrés
2
2
Θ(d) = ed /h , fonction de poids centrée en q
H est indépendant de la distance à p
Implémentation
utilisation d'un kD-tree pour chercher rapidement un voisinage de points
G est habituellement de faible degré (entre 2 et 4)
la surface 2ainsi
dénie est une variété inniment lisse
2
Θ(d) = ed /h , h permet de contrôler le degré de lissage (eg : ltrage de
bruit)
Chapitre 7
Partitionnement
Traitements géométriques en 3D
Pour
la modélisation
la synthèse (d'images, mais pas seulement)
l'animation
Les solution ecaces sont en général locales
→ partitionnement d'objets
Une solution ecace et élégante : Subdivision Spacial Hierarchy
7.1 Structures de Subdivision Spatiale hiérarchique
omniprésentes en informatique graphique
modélisation : partitionnement, analyse, simplication, reconstruction,
génération de niveaux de détails
rendu : lancé de rayon, photon mapping, radiosité, approximation de
l'illumination incidente, visibilité, . . .
animation : détection de collision, simulation de foules, déformation basée physique
Réalité virtuelle : graphe de scène, sélection de niveaux de détails, parallélisation, . . .
Principales structures :
kD-tree [Bentley 75] : organisation orthogonale d'un ensemble d'échantillons
BSP-tree[Fuchs et al 80] : subdivision binaire et récursive de l'espace
par des hyperplans
QuadTree / OcTree[Jackins & tanimoto 80] : dimension de l'espace dans
la structure (subdivision 1-pour-4 en 2D, 1-pour-8 en 3D)
BVH (Bounding Volume Hierarchy)
de très nombreuses utilisations et combinaisons dans la littérature
7.1.1 QuadTree
séparation récursive 1-4 d'un domaine planaire
organisation des partitions dans un arbre quaternaire
43
44
CHAPITRE 7.
PARTITIONNEMENT
7.1.2 OcTree
généralisation en 3D du QuadTree
hiérarchie de cubes englobants
TYPE OctreeNode
{
OctreeNode children[8];
Data data; // Bounding Cube + miscelaneous data
}
OctreeNode buildOctree (Data data)
{
OctreeNode node;
if (stopCriteria(data))
init(node, data) // fill children with NULL and affect data
else
Data * children[8];
dataSpatialSplit(data, dataChild) // 8-split of the bounding cube
// and partitioning of data
7.1.
}
STRUCTURES DE SUBDIVISION SPATIALE HIÉRARCHIQUE
45
for(int i=0; i<8; i++)
node.children[i] = buildOctree(childData[i]);
node.data = NULL;
return node;
Ca peut être implémenté dans une table (sans pointeur, arbre quasiment parfait)
ou avec une hashtable (code de Morton).
7.1.3 kD-Tree
structure de partitionnement orthogonal d'échantillons
arbre binaire
Node buildKDTree(PointList P)
{
BBox B = computeBoundingBox(P);
Point q = findMedianSample(B,P);
Node n;
Place H = plane(q, maxAxis, B);
n.data<q,H>;
PointList Pu = upperPartition(P,H);
PointList Pl = lowerPartition(P,H);
n.leftChild = buildKDTree(Pu);
n.righChild = buildKDTree(Pl);
return n;
}
7.1.4 BSP-Tree
arbre binaire de partitionnement spatial
chaque n÷ud dénit un hyperplan séparant son sous-espace associé
Calcul des plans de coupe
alignés sur les axes
découpage similaire à un kD-Tree
46
CHAPITRE 7.
PARTITIONNEMENT
Analyse en composante principale (top-down)
ACP sur P
découpage de P selon le plan déni par le barycentre et le vecteur propre
associé à la plus grande valeur propre
Diérence entre kD-Tree et BSP Tree alignés sur les axes
kD-Tree : structure d'organisation, certains échantillons sont stockés sur
le n÷ud interne
BSP = structure de partitionnement de l'espace, seules les feuilles stockent
éventuellement des données sur les échantillons
7.2 Comparaison
adaptivité à une profondeur donnée :
Octree < kD-Tree < BSP-Tree
Simplicité d'implémentation/Temps de construction
Octree < kD-Tree < BSP-Tree
Donc les kD-Tree sont un bon compromis. Il existe des heuristiques ecaces pour (quasi) garantir un temps d'accès en log(N ) (test d'intersection). Ils
constituent le choix habituel du ray-tracing.
Chapitre 8
Reconstruction de Surfaces
8.1 Introduction
8.1.1 Objectifs
Fournir une surface à partir d'un échantillonage
Entrée
ensemble d'images (pixels) et/ou
grille 3D (voxels) et/ou
nuage de points non organisés (surfels)
Sortie
maillage
surface de subdivision
surface NURBS
surface implicite
8.1.2 Caractérisation
Ecacité
complexité en temps-vitesse de reconstruction
pas méthodes complétement automatiques, besoin de limiter le temps
de reconstruction au sein d'une session d'acquisition 3D
complexité en mémoire : taille de l'entrée
nuages de points provenant de scanner 3D modernes : plusieurs dizaines/centaines de millions d'échantillons
Qualité
reproduction de surfaces de genre arbitraire
2-variété garantie
Pas nécessaire pour la visualisation seule
essentiel pour le traitement géométrique
Structure semi-régulière
maillage de qualité pour les post-traitements (paramétrisation)
NURBS, subdivision
Filtrage de bruit
bruit d'acquisition, de consolidation
47
48
CHAPITRE 8.
RECONSTRUCTION DE SURFACES
8.1.3 Classication
8.1.4 Historique (partiel)
Quelques algorithmes de reconstruction
Hoppe (92 94) : Extraction de contours d'une union de plans implicites
Modèles déformables : conformation de la surface d'un ballon au nuage de
points
VolFill : reconstruction volumétrique pour les grands objets
PowerCrust : diagramme de Voronoï
MPU : Partition de l'Unité Implicite
8.2 Les algorithmes de reconstruction
8.2.1 Algorithme de Hoppe
1. Pour chaque point, évaluer une normale par PCA si elle n'est pas fournie
(surfel)
2. La position et la normale d'un surfel dénissent un plan
3. Dénir en tout point une fonction signée en classiant le point par rapport
à la fonction implicite du plan du surfel le plus proche (kD-Tree)
4. Extraire un maillage à partir de cette fonction via l'algorithme du marching cube
8.2.
LES ALGORITHMES DE RECONSTRUCTION
49
Avantages
simple
rapide
Inconvénients
qualité du maillage (à cause du marching cube)
pas de ltrage de bruit
8.2.2 Modèles déformables
On dénit une énergie E à partir du nuage de points P (distance, erreur
tangente, estimation de la courbure)
1. Placer un maillage simple M à l'intérieur du nuage de points à reconstruire
2. Soumettre tous les sommets de M à E et les faire progresser agin de
minimiser E localement
3. Si erreur(P, M ) > ε
raner le maillage
recommencer en 2
Avantages
qualité du maillage : semi-régulier
dynamique : processus observable/manipulable par l'utilisateur
Inconvénients
lent : coût de l'évaluation de l'énergie, test d'auto-intersection
topologie : diculté à reproduire des genres élevés
8.2.3 VolFill
1. Prendre en entrée un ensemble d'images de profondeur (+ repére 3D)
2. Dénir pour chacune une fonction de distance 3D
3. Accumuler dans une grille 3D les valeurs de distances induites pour chaque
fonction
4. Extraire un maillage via un algorithme de type Marching Cube
Avantages
algorithme hors mémoire : une fonction/image traitée à la fois, possibilité de ne charger qu'une partie de la grille à un moment donné
permet de produire des maillages en très hautes résolutions
Inconvénients
nécessite les images de profondeur du scanner (ne prend pas directement
un nuage de points)
50
CHAPITRE 8.
RECONSTRUCTION DE SURFACES
8.2.4 PowerCrust
1. Construire le diagramme de Voronoï du nuage de points
2. Un sous-ensemble des sommets de Voronoï constitue une approximation
discrète de l'axe médian
3. L'intérieur de l'objet est déni comme étant l'union de balles centrées sur
ces sommets
4. Les triangles de Delaunay à la surface de cette union constitue le maillage
obtenu
Avantage
Sous certaines condition d'échantillonnage, 2-variété garantie
interpole le nuage de points
Inconvénients
lent
condition d'échantillonnage rarement réunies/connues
Pas de lissage de bruit
distribution non-uniforme : triangles très (trop) elés
8.2.5 MPU
Approximer localement de nuage de points par une surface implicite
Partitionnement du nuage de points en octree
A chaque niveau
Approximer une surface polynomiale de faible degré (2 ou 3) par la
partition élargie (zone de chevauchement)
Si l'erreur entre le sous-ensemble de points de la partition et la surface
implicite est trop forte, subdiviser la partition en 8 (octree et split) et
recommencer
Evaluation en P : mélanger la valeur du polynôme de la feuille de l'arbre
intersectant P à celle de ses voisines (partition de l'unité) avec l'équation :
PM
f (x) =
i=1 fi (x)wi (x)
PM
i=1 wi (x)
Extraction d'un maillage par Marching Cube
Avantages
très rapide
adaptatif
ltre le bruit
surface implicite (genre arbitraire, 2-variété quasi-garantie)
Inconvénients
maillage de faible qualité (Marching Cube)
Diculté à reproduire les détails
8.2.
LES ALGORITHMES DE RECONSTRUCTION
arbre profond
beaucoup d'approximation polynomiales
marching cube en très (trop) haute résolution
8.2.6 Comparaison
Ecacité Qualité
Hoppe
+++
+
Modèle Déformable
+
+++
Volll
++
++
PowerCrust
+
++
MPU
+++
++
Beaucoup d'autres algorithmes récemment proposés.
51
52
CHAPITRE 8.
RECONSTRUCTION DE SURFACES
Chapitre 9
Simplication de Surfaces
On utilise la simplication de surfaces pour diminuer le nombre de polygones.
C'est la première quand on veut faire de l'abstraction (analyse des objets plus
sémantique, classication d'objets).
9.1 Introduction
9.1.1 Contexte
Modèle de Saint Matthieu :360 000 000 triangles
Atlas
:500 000 000 triangles
→ Trop pour beaucoup d'applications. On va donc vouloir les simplier.
9.1.2 Objectif
Fournir automatiquement un maillage contenant moins de polygones, mais
en préservant autant que possible la forme d'origine.
Entrée : un maillage
Sortie : un maillage
Note : des techniques similaires peuvent être appliquées aux surfaces de
points.
9.1.3 Caractérisation
Ecacité
temps : simplication à la volée
mémoire : algorithme hors mémoire souhaitable.
Qualité
préservation de la topologie de la surface
préservation de la géométrie de la surface
53
54
CHAPITRE 9.
SIMPLIFICATION DE SURFACES
9.1.4 Classication
9.1.5 Historique (partiel)
PM (Progressive Meshes) [Hoppe et al 1993, 1996] : optimisation de maillage
QEF (Quadric Error Function) [Garland 97] : erreur L2 basée sur une quadrique
OOCS(Out-Of-Core Simplication) [Lindstrom 2000] Partitionnement en
grille de soupes de polygones
VSA (Variational Shape Approximation) [Cohen-Steiner 04] : relaxation
de Lloyd pilotée par la normale
9.1.6 Métriques d'erreur
Les méthodes de simplication dépendent souvent d'une métrique d'erreur
qui caractérise le coût géométrique (perte d'information) introduit.
L2 : erreur des moindres carrés
n
eL2
1X
=
kpi − ck2
n i=0
L2.1 : erreur basée normale
n
eL2.1 =
1X
ni · n
n i=0
9.2.
LES ALGORITHMES DE SIMPLIFICATION
55
L∞ : erreur basée sur la distance de Haussdorf (distance au sens où on
l'entend)
eL∞ = max kpi − ck
i
9.2 Les algorithmes de simplication
9.2.1 PM : Optimisation de maillage
1. Trier les sommets en fonction de leurs importances
Métriques d'importance : position, normale, couleur, point de vue, . . .
2. Contracter une arête adjacente au sommet de moindre importance pour
réduire de 2 le nombre de polygones
opération duale : séparation de sommet
3. Recommencer en 1 tant que le nombre de polygone est supérieur au maximum souhaité.
Note : on peut supprimer un certain nombre d'arêtes sans retrier les sommets à
chaque fois car on peut penser que l'importance d'un sommet n'augmente pas
tout d'un coup.
Note : cette simplication permet de construire une structure complète de
multi-résolution, avec continuum (interpolation le long des arêtes contractées).
Avantage
précis
Inconvénient
lent
9.2.2 QEF
Quadric Error Function : erreur L2 par rapport à une quadrique (forme
générée par un polynôme quadratique)
Permet de mieux placer
un sommet représentant dans les méthodes de partitionnement
un sommet voisin d'un sommet contracté
56
CHAPITRE 9.
SIMPLIFICATION DE SURFACES
9.2.3 OOCS
Idée : partitionnement de sommets hors-mémoire
Partitionnement du maillage dans une grille
Pour chaque cellule, calcul d'un représentant via QEF
Pour chaque triangle, 2 cas
Si 2 ou 3 des sommets sont dans la même cellule, supprimer le triangle
Sinon, conserver le triangle, en aectant pour chaque sommet la position
du représentant de sa cellule
9.2.4 VSA
Algorithme en 2 étapes
1. Partitionnement d'un maillage via une relaxation de Lloyd pilotée par la
métrique L2.1
2. Simplication par remaillage des partitions et suivi de contours (technique
diérente du partitionnement de sommets)
La métrique L2.1 est basée sur la normale ; elle détecte mieux les anisotropies, les plis vifs, les larges zones planes.
Deuxième partie
Modélisation Géométrique
des Solides
57
Chapitre 10
Fondements
10.1 Motivation
Problématique
représentation des caractéristiques propres à la géométrie
pouvoir calculer toute propriété relevante de la géométrie
Exemples de problèmes
La théière est l'union de plusieurs formes qu'on a recollées : le corps, le
couvercle, l'anse et le bec verseur. On remarque que les diérents morceaux ne
sont pas collés correctement : il faut que les sommets et les arrêtes coïncident,
ce qui n'est pas le cas.
De même, certaines constructions peuvent faire que la surface dénissant le
solide s'auto-intersecte. Il y a alors un conit que l'on peut résoudre en analysant
le maillage.
10.2 Solides
Rigidité des solides
Un solide est dit rigide si et seulement si sa forme reste homogène et invariante par rapport à l'orientation dans l'espace.
Régularité des solides
Un solide est dit régulier si et seulement si tout point du solide a un voisinage
homéomorphe soit à une sphère pour les points à l'intérieur, soit à une demisphère pour les points de la frontière.
On parle de variété 2D pour une surface (homéomorphie à un disque ou un
demi-disque) et de variété 3D pour un volume.
59
60
CHAPITRE 10.
FONDEMENTS
Description nie des solides
Un solide est dit de description nie si et seulement si sa frontière supporte
une description nie.
10.3 Propriétés des représentations
Puissance
La puissance des méthodes de représentation est déterminée par leur capacité
à représenter un grand nombre de familles de formes choisies par exemple parmi
des solides bornés par des faces planes (polyèdre).
Validité
Une méthode de représentation est considérée comme étant valide si et seulement si à partir de toute représentation de ce type on peut retrouver au moins
un solide qui lui correspond.
Non-ambiguïté
Une méthode de représentation est considérée comme étant non-ambiguë si
et seulement si à tout solide correspond une seule représentation de ce type.
Par exemple, CSG est ambiguë :
Fermeture
Une méthode de représentation est dite fermée par rapport à un ensemble
d'opérations si et seulement si le résultat des répétitions successives d'opérations
de cet ensemble ne l'invalide pas ie correspond toujours à un solide.
10.4.
CLASSIFICATION DES REPRÉSENTATIONS
61
Description
Une méthode de représentation supporte une description informatique si et
seulement si sa construction peut être dénie sous la forme d'un script à partir
d'un nombre limité de paramètres.
Densité
Une méthode de représentation est dite dense si et seulement si le coût
mémoire nécessaire à sa sauvegarde est faible.
Facilité d'usage
Une méthode de représentation est dite facile d'usage si et seulement si les
pré-requis nécessaires à sa manipulation sont faibles.
10.4 Classication des représentations
Représentations primitives
Une méthode de représentation est dite primitive si et seulement si elle
contient la dénition du solide de manière explicite (ex : polygonal, WireFrame,
sweeping = contours+trajectoire)
Représentations décompositives
Une méthode de représentation est dite décompositive si et seulement si elle
est basée sur la décomposition du solide en cellules volumiques.
Représentations constructives
Une méthode de représentation est dite constructive si et seulement si elle
présente le solide comme des constructions booléennes de primitives.
Représentations par frontière
Une méthode de représentation est dite par frontière si et seulement si elle
décrit le solide par subdivision de la surface frontière en sommets, arêtes et
faces, et son espace de plongement dans l'espace E 3 .
62
CHAPITRE 10.
FONDEMENTS
Chapitre 11
Représentations
décompositives
11.1 Motivation
11.1.1 Problématique
Une représentation est dite décompositive si et seulement si elle contient la
dénition de la décomposition du solide en cellules volumiques (voxels).
11.2 Représentation en énumération spatiale (SOE)
11.2.1 Notions de base
L'énumération spatiale est dénie par une subdivision régulière en cellules
identiques qu'on applique au volume occupé par l'objet.
On doit faire une approximation grossière.
Visualisation : on ne voit que les cubes frontières : il faut les détecter. Pour
chacun d'eux, il faut détecter lesquelles de ses faces sont visibles.
11.2.2 Construction du SOE
On considère la cellule et son centre. On veut évaluer si elle appartient au
solide
on teste les 8 sommets
ou son centre
ou une sphère centrée en son centre
...
Quand on est partiellement occupé, on regarde le pourcentage d'occupation
de la cellule par le solide. Selon la façon dont on fait ça, ça peut changer les
choses pour la reconstruction de l'objet. On peut obtenir une borne max ou une
borne min.
63
64
CHAPITRE 11.
REPRÉSENTATIONS DÉCOMPOSITIVES
11.2.3 Propriétés
Puissance
On a un solide de forme irrégulière et des arféfacts.
Validité
Ce modèle n'est pas valide. Un algorithme simple pour vérier la 3D variété :
Pour chaque paire de cellule, on doit avoir :
soit les cellules sont disjointes
soit leur intersection est une face
Unicité
Ça dépend de la résolution : si elle est xe, alors on a unicité
Ça dépend aussi de la méthode de classication que l'on se donne.
Fermeture
Si on s'intéresse à la validité, la composition de 2 jeux n'est pas forcément
valide.
Densité
En procédural, ça peut ne pas être gros.
En stockant les cellules, ça prend beaucoup de place.
Facilité d'usage
Facile.
11.3 Représentation en subdivision spatiale
11.3.1 Notion de base
Subdivision adaptive qui s'applique sur tout l'espace. A chaque étape, on
classe les cellules comme étant vides, pleines, ou partiellement occupées. On
subdivise les grises (cad les partiellement occupées). Comment les traiter quand
on est à la résolution maximale ?
On obtient des cellules de tailles diérentes.
11.3.2 Octree
Arbre octal.
A chaque étape de la subdivision, l'espace est partitionné en 8 octants correspondant aux demi-espaces le long des plans XY, YZ et XZ.
11.4.
REPRÉSENTATION EN DÉCOMPOSITION CELLULAIRE
65
11.3.3 BSP Tree
Arbre binaire de subdivision spatiale.
A chaque étape de la subdivision, l'espace est partitionné en 2 sous-ensembles
classés selon leur appartenance à l'objet (in-out).
11.3.4 Propriétés
Puissance
Choses complexes mais toujours le problème d'aliasing
Validité
On ne peut pas assurer à la 3D-variété. Même algorithme pour le vérier.
Unicité
Oui à une résolution prés.
Fermeture
oui
Description
Choix du codage : en bas au fond à gauche + taille, ou en bas au fond à
gauche + en haut devant à droite.
Code : 0=vide, 1=plein, 2=partiellement occupé.
Densité
Procédural : pas grand chose.
Facilité d'usage
struct Octree{
int code, depth;
float xmin, ymin, zmin, xmax, ymax, zmax;
Octree oct[8];
}
renement récursif. Appel aux fonctions
Octree Subdivide(Octree t)
int solidClassificationFunction(Octree t)
11.4 Représentation en décomposition cellulaire
11.4.1 Notions de base
Subdivision irrégulière en cellules curvilignes.
66
CHAPITRE 11.
REPRÉSENTATIONS DÉCOMPOSITIVES
11.4.2 Propriétés
Puissance
Représentation exacte
Validité
Bien plus compliqué à cause du curviligne.
Chapitre 12
Représentations Constructives
12.1 Motivation
12.1.1 Problèmatique
Peut-on modéliser tous les objets avec des représentations constructives ?
forme libre : plutôt non (objet de la nature)
forme à base de sphère, cylindre, cube : plutôt oui (industrie)
12.1.2 Geométrie Constructive Solids
Les représentations constructives utilisent la CSG (Constructive Solid Geometry) pour élaborer des solides complexes à partir d'un ensemble d'objets de
formes relativement simples, appelés des primitives, et l'ensemble d'opérations
booléennes intersection, diérence, union.
12.1.3 Modèle : arbre CSG
Un solide est représenté par l'historique de sa construction. Le modèle est
un arbre binaire dont les n÷uds contiennent des opérations booléennes et les
feuilles des primitives.
12.2 CSG à base de Primitives Innies
12.2.1 Notions de base
Dénition
Une représentation constructive est dite à base de primitives innies si et
seulement si les primitives utilisées sont des demi-espaces bornés par des plans
algébriques.
67
68
CHAPITRE 12.
REPRÉSENTATIONS CONSTRUCTIVES
12.2.2 Propriétés
Puissance
En fonction de nos primitives, on peut obtenir une représentation plus ou
moins signicative.
Une représentation exacte est rare, elle se limite à des cas restreints.
Validité
On risque avoir des volumes non fermés.
Unicité
Il n'y a pas unicité. On peut faire les intersections dans des ordres diérents.
Description
On stocke les primitives et l'arbre.
Facilité d'usage
Dicilement implémentable
beacoup de tests et de parcours de l'arbre.
12.3 CSG à base de Primitives Finies
12.3.1 Notions de base
Une représentation contructive est dite à primitive nie si et seulement si les
primitives utilisées sont des ensembles nis.
12.3.2 Propriétés
Unicité
Non, voir l'exemple de l'introduction.
Description
On stocke la liste des primitives et l'arbre.
Facilité d'usage
Arbre binaire
visualisation ⇒ algorithmes complexes.
Chapitre 13
Représentations par Frontière
13.1 BRepr
13.1.1 Problèmatique
On peut faire les mêmes choses qu'avec un CSG. Mais on peut aussi faire
des formes libres.
On peut faire un mélange de planaire et de curviligne grace à la composition
de Faces,Edge,Vertex et le plongement.
13.1.2 Notions de base
Une représentation est dite représentation par frontière (Boundary Representation) si et seulement si elle est fondée sur la description de la subdivision
de la surface frontière des solides en cellules de dimension 0D (les sommets), 1D
(les arêtes), et 2D (les faces) et son plongement dans l'espace E 3 .
Loop est important pour les cas où il y a des trous dans les faces.
Les pointeurs permettent d'avoir facilement le voisinage.
69
70
CHAPITRE 13.
REPRÉSENTATIONS PAR FRONTIÈRE
Le voisinage est important pour certains algorithmes.
13.1.3 Représentation BRepr basée sur des graphes planaires G = {V,E}
13.1.4 Représentation BRepr basée sur des graphes planaires G = {F,E}
C'est le dual de l'autre.
13.1.
BREPR
71
13.1.5 Formule d'Euler
ensemble de sommets V , d'arêtes E et de faces F
V −E+F =2
polyèdres simples topologiquement corrects ⇒ V − E + F = 2
V − E + F = 2 ; polyèdres simples topologiquement corrects
13.1.6 Formule d'Euler Poincaré
ensemble de coquilles S , de trous H et de d'anneaux dans les faces R
V − E + F = 2(S − H) + R
polyèdre topologiquement corrects ⇒ V − E + F = 2(S − H) + R
V − E + F = 2(S − H) + R ; polyèdre topologiquement correct
13.1.7 Manipulation des graphes planaires
V.
modèle planaire squelétique
Primitive squelétique constituée par une coquille S , une face F et un sommet
Opérations topologiques locales
découpe et recollement de sommets
découpe et recollement de faces
72
CHAPITRE 13.
REPRÉSENTATIONS PAR FRONTIÈRE
Opérations topologiques globales
somme connexe
diérence connexe
13.2 Propriétés
13.2.1 Validité
Construction des représentations BRepr valides
On considère un espace discret de 6 dimensions où les axes correspondent
aux nombres de sommets V , d'arêtes E , de faces F , de trous H , d'anneaux R
et de coquilles S .
Soit un point P = P (v, e, f, h, r, s) de cet espace.
Si P correspond à un polyèdre topologiquement correct, il doit vérier EulerPoincaré.
V − E + F = 2(S − H) + R. Cette équation dénit un sous-ensemble de
dimension 5, un hyperplan qui contient tous les polyèdres topologiquement corrects.
Sur ce plan, on peut choisir une base de 5 vecteurs Vi tels que
1. Vi sont collinéaires au plan et
2. Vi sont linéairement indépendants
Une telle base est dénie par les opérateur d'Euler.
V1
V2
V3
V4
V5
= M ev(1, 1, 0, 0, 0, 0)
= M ef (0, 1, 1, 0, 0, 0)
= M vf s(1, 0, 1, 0, 0, 1)
= KeM r(0, −1, 0, 0, 1, 0)
= Kf M rh(0, 0, −1, 1, 1, 0)
13.2.2 Description
Mvfs
Mev
13.2.
PROPRIÉTÉS
Mef
KeMr
KfMrh
13.2.3 Densité
Ca peut devenir assez lourd.
13.2.4 Facilité d'usage
On peut faire pas mal de trucs avec, assez facilement.
73
74
CHAPITRE 13.
REPRÉSENTATIONS PAR FRONTIÈRE
Chapitre 14
Applications
Synthèse d'images
on peut alors associer le modèle avec des textures
Conception et Fabrication Assistées pas Ordinateur
calcul de la surface
calcul du volume
caractéristiques de formes
Imagerie médicale
reconstruction de surface
75