View
25
Download
0
Category
Preview:
Citation preview
Geometric Mesh Processing:Mesh Generation
Fabio Ganovelli
fabio.ganovelli@isti.cnr.itISTI- CNR
Tipi di mesh: mesh strutturate
Una mesh regolare è una decomposizione in elementi i cui vertici sono espressi come mapping di un dominio più semplice
• Richiedono poca memoria
• Facilità di applicazione del metodo alle differenze finite
• difficile determinare mapping che approssimino “bene” domini complessi• non sempre possibile
Introduzione
),(f 00
),(f 10
),(f 11
),(f 01
)(f' Γ=Γ
],[],[ 1010 ×=Γ'Γf
Tipi di mesh: mesh non strutturateDecomposizione in elementi finiti
• possibilità di approssimare domini arbitrariamente complessi
• Maggiore richiesta di memoria per la memorizzazione
Introduzione
Da dove vengono le mesh?
Mesh GenerationTriangolazione di punti in 2D• Definizione del problema• Qualche algoritmo
Superfici 2D embedded in 3D• Ricostruzione da sezioni planari (tiling)• Marching Cubes• Ball Pivoting
Mesh di volume• Misure di Qualità
– Poliedri non triangolabili – Punti di Steiner
• Triangolazione di poliedri– Advancing front approach– Medial axis transform– Bubble Meshing (ricostruzione di domini non manifold)
• Triangolazione di Point set– Alpha shapes
Definizioni
• Una mesh è una decomposizione di un sottoinsieme compatto di in celle.
• Un simplesso in n dimensioni è il luogo dei punti ottenuti come combinazione convessa di n+1 punti
• Un complesso simpliciale ΣΣΣΣ in n dimensioni è un insieme di simplessi tale che:
– 1. tutte le facce di ogni n-simplesso appartengono a ΣΣΣΣ– 2. per ogni coppia di simplessiσ e τ vale:
– 3. n è il massimo ordine dei simplessi di ΣΣΣΣ
nR
∅=
entrambidifacciaunaτσ I
Introduzione
Mesh simpliciali in
Input PoligonoSemplice
Poligonocon buchi
PSLG (PlanarStraight Line
Graph)
Point Set
Compl.in tempo O(n) O(n log h) O( n log n) O(n log n)
Problemi NP-completi:
– dire se un PSLG (con intersezioni) contiene una triangolazione [Lloyd77]
– dire se una collezione di triangoli contiene una triangolazione
2RMesh Generation in due dimensioni
Criteri di ottimalità
Un criterio di ottimalità si definisce con funzioni f: T → R, di tipo:
o
dove f (t) misura la bontà di un triangolo
perché f sia ben definita deve avere un solo minimo in corrispondenza del triangolo ideale (es: equilatero) e massimo non limitato
f (τ ) può basarsi sull’angolo minimo o massimo, sulla lunghezza del lato più lungo/corto, sull’area del più piccolo/grande cerchio inscritto/circoscritto, sull’aspect ratio tra tutti i triangoli della mesh
{ }Γ∈= ττ :)(fmax[min]f ∑Γ∈
=τ
τ )(ff
Mesh Generation in due dimensioni
Es: Aspect Ratio
a
cb
h
Def: L’aspect ratio è data dal rapporto tra il lato più lungo e l’altezza relativa a tale lato
h
a)t(f =
+∞≤≤ )t(f3
2a
h3
2=)t(f
a
h
+∞→)t(f
L’aspect ratio è legata all’angolo minimo θ :
θθ sin)t(f
sin
21 ≤≤
Mesh Generation in due dimensioni
min
max
Triangolazione di Delaunay
• Def: Cella di Voronoi di un punto p∈ S:
• Def: Diagramma di Voronoi di un point set S:
• Def: Triangolazione di Delaunay di un point set S: triangolazione contenente tutti e soli i lati che connettono duepunti che condividono un lato della cella di Voronoi (duale del diagramma di Voronoi)
}Sp|xp||xp|:x{cV jjih
i ∈∀≤ℜ∈=
Mesh Generation in due dimensioni
icVV U=
Qualche proprieta’ ….Dato un insieme di vertici, un edge {a,b} appartiene a DT sse esiste un cerchio passante per a e b non contenente nessun altro vertice
Dato un insieme di vertici, un triangolo {a,b,c} appartiene a DT sse il cerchio passante per a,b e c non contiene nessun altro vertice
a
b
a
b
a
bc
a
bc
Mesh Generation in due dimensioni
Preview di domani
• Lift-transformation
• Proprieta’ incredibile:– La proiezione sul piano dell’intersezione dei piani tangenti ai punti
“lifted” produce in diagramma di Voronoi dei punti sul piano
),,(),(
,,,),,(
:
22
0
211
1
yxyxyx
xxxxxn
iinn
nn
+=
=
ℜ→ℜ
∑=
+
ψ
ψ
ψ
KK
Ottimizzazioni di DT
• Ottimizza :– massimizza il minimo angolo
– minimizza il massimo circumcircle
– minimizza il massimo min-containment circle
Mesh Generation in due dimensioni
Ottimizzazione: algoritmo di flipping [Lawson77]
Procedura di ricerca locale
b
a
dc
)()()(
)()()'(
Tfacdfabcf
bcdfabdfTf
=+
Ottimi globali
Variando il criterio per decidere quando due triangoli adiacentidevono essere “flippati” si possono ottimizzare diverse misure, es.:
– max-min angle (Delaunay)
– min-max circumcircle (Delaunay) ….
– Min-max min containment circle (Delaunay)
Ci sono criteri per i quali l’algoritmo di flipping termina in un ottimo locale , es.:
– min-max angle
– minimum total edge length (MWT)
Mesh Generation in due dimensioni
Edge insertion [Edelsbrunner92]Generalizzazione dell’algoritmo di flipping
Aggiunta di un lato candidato
Retriangolazione
migliore
Ripristinaprecedente
s
n
a b1T
2T
a b1T
2T
Mesh Generation in due dimensioni
Anchor propertyDef: data T , un vertice a di un triangolo abc è un anchor vertex se ∀T’ : f(T’) < f(T), T’ contiene un lato ad che interseca il triangolo in bc
Def: vale la weak anchor property per f sse :∀ T, ∀ abc ∈ T : f(abc) = f(T), uno dei vertici è un anchor vertex. Se ∀abc ∈ T , uno dei vertici è un anchor vertex vale la strong anchorproperty
Mesh Generation in due dimensioni
Es: f(T) = max-angle gode della Weak Anchor Property
Teorema : se f soddisfa la WAP ⇒ l’algoritmo Edge Insertiondetermina l’ottimo globale in O(n3)Se vale SAP la complessità scende a O(n2log n)
Poligoni Semplici:Programmazione dinamica
Sia un poligono P, una sua diagonale ab e siano T e T’ due triangolazioni delle due parti del poligono diviso da ab
Def: f(T) è decomponibile se:• monotona• g è calcolabile in O(1)• se T è un triangolo, f(T) è calcolabile in O(1)
)b,a),T(f),T(f(g)T(f:g 21=∃
Mesh Generation in due dimensioni
a b1T
2T
Areamin)T(f =)f,fmax()b,a,f,f(g 2121 =
Una triangolazione di un poligono semplice che ottimizzi una funzione decomponibile può essere calcolata in O(n3) [Klincsek80]
MWT)T(f =abff)b,a,f,f(g −+= 2121
Mesh Generation in due dimensioni
∞+=
= +
altrimenti
diagonaleunaèsudiottimo
verticidaiformatopoligonodati 1
)v,v(se)j,i(Pf)j,i(F
v,,v,v)j,i(P,v,v
ji
jiiji K
)v,v),j,k(F),v,v),k,i(F,)vvv(f(g(gmin)j,i(F
globaleottimo)k,(F
jkkikjijki 43421≤≤
==1
iv
jvkv
Nell’implementazione F(1,k) è calcolato iterativamente
fdiottimo)n,(F =1
nv
Un Problema aperto: Minimum WeightTriangulation
Esiste un algoritmo polinomiale per determinare la triangolazione di un point set che minimizzi la lunghezza totale dei lati (o che la approssimi per O(1))? O il problema è NP-completo ? [Garey & Johnson79]
Se la funzione sui lati è generale, non correlata alla lunghezza, MWT è NP-completo [Lloyd77]
Qualunque triangolazione ha lunghezza totale O(n) volte l’ottimo[Kirkpatrik80]
La triangolazione di Delaunay può essere fino a Ω(n) volte l’ottimo [Manacher79]
Per poligoni convessi, la strategia greedy fornisce una approssimazione O(1) [Levcopoulus77]
Mesh Generation in due dimensioni
Minimum Weight Triangulation: migliore approssimazione
1. Partizione del convex hull in poligoni convessi2. Triangolazione greedy dei poligoni
L’algoritmo fornisce una approssimazione O(log n) [Plaisted & Hong 87]
Mesh Generation in due dimensioni
Mesh Generation in 3 dimensioni
Superfici 2D embedded in 3D• Ricostruzione da sezioni planari (tiling)• Marching Cubes• Ball Pivoting3D Mesh Generation• Misure di Qualità
– Poliedri non triangolabili
– Punti di Steiner
• Triangolazione di poliedri– Advancing front approach
– Medial axis transform
– Bubble Meshing (ricostruzione di domini non manifold)
• Triangolazione di Point set– Alpha shapes
Ricostruzione da sezioni planari [Bajaj96]
• Caso particolare di Point Set: i punti sono distribuiti su un insieme di piani paralleli (slices) • Input: insieme di slices, ognuna contenente un insieme di poligoniProblema : ricostruire la superficie dell’oggetto (degli oggetti) conoscendo i contorni su ogni slice
Slice 1
Slice 2
Generazione di Mesh Superficiali
Ricostruzione della superficie da sezioni planari
Criteri:1. La superficie ricostruita e le regioni sugli slices formano un insieme di
superfici chiuse2. L’intersezione tra una qualunque linea verticale passante per i due
slices e la superficie ricostruita è un punto, un lato o è vuota3. Il resampling della superficie ricostruita deve consistere nei contorni
originali
Generazione di Mesh Superficiali
Il problema della corrispondenza
• Determinare in modo “corretto” (decidere in modo consistente) la corrispondenza tra i contorni
Generazione di Mesh Superficiali
Il Problema della copertura (Tiling)
• Costruire le strisce di triangoli tra i contorni corrispondenti
Criteri:• minima superficie• minimo volume racchiuso• minima lunghezza dei lati
Problema di matching su grafi bipartiti
Generazione di Mesh Superficiali
Il Problema della copertura (Tiling)
Esistono coppie poligoni per cui non è possibile effettuare un tiling
Generazione di Mesh Superficiali
Il problema di branching
• Costruire la copertura (tiling) quando la corrispondenza tra i contorni non è 1:1
• Le tecniche adottate in c,d ed e violano il criterio (3)
Generazione di Mesh Superficiali
Marching Cube:estrazione di isosuperfici da dataset volumetrici [Lorensen87] :
Output: superficie con valore αααα e con derivata lungo la normale non nulla (isosuperficie)
Input:- una griglia di punti regolare (quindi un insieme di celle cubiche) dove ad ogni punto (vertice) è associato un valore reale f (campo)- un valore scalare αααα
Il valore del campo in un punto p è ottenuto per interpolazione trilineare del valore nei vertici della cella che lo contiene
10 5
7 3
7.5 = α
57.f =
00p 10p
11p01p
∑=
=
−− −−⋅=1
0
11 11j,i
j,i
jjiiij y)y(x)x(f)y,x(f
y
x00,
1
1
Generazione di Mesh Superficiali
Marching Cube: configurazioni
Generazione di Mesh Superficiali
• Configurazioni possibili: 2^8=256, ma si riducono a quattordiciclassi di equivalenza considerando rotazioni mirroring e complemento
Marching Cube: LookUp Table
Generazione di Mesh Superficiali
0 1
23
4 5
67
7 6 5 4 3 2 1 010000000
0 : nil1 : {e0,e4,e8}2 : ….3 : ….
…. …
255: nil
LookUpTable
Per ogni permutazione del valore del campo rispetto alla soglia, memorizza I triangoli della configurazione corrispondente
Marching Cubes: Implementazione
• “Marching”. L’algoritmo procede cella per cella, riga per riga, slice per slice. Da ogni cella si produce una triangolazione.
• Tranne che per le celle sul bordo della griglia considerare unanuova cella richiede solo valutare tre nuovi edges
• Se non si vuole duplicare i vertici occorre ricordarsi i verticicalcolati su edge condivisi da celle gia’ processate
Generazione di Mesh Superficiali
Marching Cubes: pros/issues
• Pros:– Facile da implementare
– Veloce e non memory consuming
– Molto robusto
• Allora perche’ dall’87 ci hanno pubblicato fantastilioni di papers?
Generazione di Mesh Superficiali
Issues:• Consistenza . Produrre una mesh C0 e manifold: casiambigui• Correttezza : Approssimare bene l’isosuperificie• Mesh complexity: il numero di triangoli prodotti da MC non dipende dalla forma della reale isosuperficie• Mesh quality: triangoli arbitrariamente brutti
Marching Cubes: casi ambigui
?
Generazione di Mesh Superficiali
Marching Cubes: casi ambigui
?
Generazione di Mesh Superficiali
Generazione di Mesh Superficiali
αα
Punti di sella
hzyyz)y,x,(f +++= gdc0
=⇒=+=∂
∂
=⇒=+=∂
∂
cg -y'0gc
0
cd
-z'0dc0
'yx
)'y,'x,(f
'zy
)'y,'x,(f
)'y,'x,(f 0
Valore del campo su una faccia
Generazione di Mesh Superficiali
ELUT: Exhaustive LUT
…..
Face saddle pointsbody saddle point
ELUT:Per ogni configurazione ambigua determina la triangolazionecoerente in base ai valori dei punti di sella
Marching Tetrahedra
• Celle tetraedrali invece che cubiche• Solo 3 configurazioni (dalle 2^4 combinazioni di segno del vertice)• Risove le ambiguita’• ?
Generazione di Mesh Superficiali
Marching Tetrahedra
• Approccio originale: le celle cubiche vengono divise in 5 (o 6) tetraedri.– La suddivisione determina la topologia
• Body centered cubic lattice: aggiunta di unvertice nel centro del cubo, suddivisionea diamanti– Suddivisione unica non ambigua
– Tutti tetraedri uguali
– Migliore superficie risultante
Generazione di Mesh Superficiali
Adaptive triangulation
• Invece di fermarsi alla configurazione iniziale si puo’ raffinare(refine) selettivamente la superficie per approssimare megliol’isosuperficie
Generazione di Mesh Superficiali
Extended MC
D2Y > 0
X
Y
D1X < 0D3X > 0
D1Y < 0
Surface
Exact intersectionpoint
Generazione di Mesh Superficiali
Generazione di Mesh Superficiali
MC
normaltangent element
normal
tangent element
Reconstructedsurface
Extended MC
Generazione di Mesh Superficiali
Marching Cubes Extended Marching Cubes
Discretized Marching Cubes
• Il punto di attraversamento dell’isosuperficie e’ sempre il puntomedio
• Stesse configurazione del MC standard• Tutte le facce generate sono su un insieme si 13 piani• Dopo l’estrazione viene effettuato un passo di “merging” per
ottenere poligoni coplanari piu’ grandi
Generazione di Mesh Superficiali
Dual Marching Cubes
• Un vertice per ogni patch generata da MC• Un quad per ogni edge intersecato (i 4 vertici associati alle
patch delle celle che condividono l’edge)• Tende ad eliminare triangoli brutti
Generazione di Mesh Superficiali
Vertice del dual MC Vertice di MC
Generazione da punti: Ball Pivoting
• Una sfera di raggio ro “rotola” sui punti, ogni tripla di punti chetocca contemporaneamente forma un triangolo
• La superficie creata e’ interpolante• Raggio della sfera?
Generazione di Mesh Superficiali
Generazione da punti: Ball Pivoting
• BPA puo’ essere usato come tecnica di remeshing– Distribuisci punti uniformemente su una superficie esistente
– Esegui BPA
• Quando e’ garantito che la topologia della mesh risultante e’ uguale alla mesh di partenza?
• Due condizioni sul sampling (o, dualmente, sul raggio dellasfera)– L’intersezione di qualunque sfera di raggio ro con la superficie e’
omeomorfo a un disco
– Qualunque sfera di raggio ro centrata in un punto della superficiecontiene almeno un vertice
Generazione di Mesh Superficiali
Mesh di Volume
Mesh Volumetriche• Visualizzazione di oggetti o
campi scalari nello spazio tridimensionale (es: applicazioni diagnostiche in medicina)
• Risoluzione di sistemi di equazioni differenziali su domini non banali (analisi strutturale dei materiali, deformable objectmodeling)
Introduzione
Misure di qualità
• Geometrica:Def ( più comune) : L’Aspect Ratio di un tetraedro è il rapporto tra il raggio della sfera circoscritta e il raggio di quella inscritta
Generazione di Mesh di volume
• Topologica:
=
−1= ∑ =
tetraedri
triangoliD
Dn
n
it
12
6
0 ιδε
=
−1= ∑ =
tetraedri
triangoli.
A
R
rA
m
m
ii
ig
112
50
0ε
rR
Qualità geometrica: casi pessimi
Needle Sliver
Wedge Cap
non ottimizza l’Aspect Ratio
minimizza il raggio della min-containment sphere con raggio massimo
La Triangolazione di Delaunay 3D:
Generazione di Mesh di volume
Triangolazione di Poliedri
Nessun vertice di un triangolo può essere collegato ad uno del triangolo opposto con un segmento che non intersechi una faccia [Schonhardt28]
Generazione di Mesh di volume
Poliedri non triangolabili: es. di Schonhardt
Punti di Steiner
I punti di steiner sono punti aggiuntivi all’input che:• rendono possibile la triangolazione di ogni poliedro• rendono possibile ogni ottimizzazione Es: Il poliedro di Schonhardt può essere triangolato aggiungendo
un punto di Steiner
Si può costruire un poliedro semplice che necessita di puntidi Steiner per poter essere diviso in regioni convesse (lowerbound per la triangolazione) [Chazelle91]
Ogni poliedro può essere triangolato con punti di Steiner
È un problema NP-completo decidere se un poliedro è triangolabile senza aggiungere punti di Steiner[Garey&Johnson79]
2n
2n
Generazione di Mesh di volume
Triangolazione di Poliedri
Input: Descrizione di un poliedro limitato: vertici, lati e facce
• Punti di Steiner necessari in ogni caso pratico
SvantaggioLa superficie della triangolazione da costruire è nota e quindi la triangolazione è constrained: più difficile e meno gradi di libertà nelle ottimizzazioni
VantaggioLa superficie della triangolazione da costruire è nota è può essere usata come base nella costruzione
Generazione di Mesh di volume
Advancing Front Tetraedralization (AFT)
Idea: partire da una triangolazione della superficie (il fronte iniziale della triangolazione 3D) e “riempire” il poliedro
Control Background
Fronte iniziale
Scelta di una faccia
Selezione di un quarto vertice e costruzione di un tetraedro
Aggiornamento del fronte
Il fronte è vuotoN S
end
Generazione di Mesh di volume
Advancing Front Tetraedralization
Offset front
Fronte iniziale
Costruzione fronte di offset
Triangolazione dello strato tra i fronti
Il fronte è vuotoN S
end
Costruzione del fronte di offset
Generazione di punti lungo le normali alle facce
+correzione del fronte di offset
Generazione di Mesh di volume
Medial Axis Transform• Idea: suddividere l’oggetto in un insieme di sottodomini per i
quali è più semplice costruire una mesh• Def: Il medial axis di un poligono (poliedro) semplice è
l’insieme dei punti centro di un cerchio (una sfera) di diametromassimale tangente al poligono (poliedro)
medial axis
• def: Il medial axis transform è il medial axis + una funzione che assegna ad ogni punto il valore del raggio del corrispondente cerchio
• I medial vertices sono i punti di discontinuità del primo ordine del raggio
• Con un taglio su ogni medial edge si può partizionare qualunque dominio bi-dimensionale in regioni convesse
Generazione di Mesh di volume
Medial Axis Transform
• I sottodomini convessi sono ulteriormente partizionati in regioni “meshabili” con mesh standard mediante Mid PointSubdivision
Mid Point Subdivision
1. Aggiunta di un punto su ogni lato2. Aggiunta di un punto interno3. Nuovi lati tra i mid points sui lati e quello interno
Risultato : le regioni ottenute sono
quadrilateri
Generazione di Mesh di volume
Condizioni per le mesh di una regione:
Medial Axis Transform
===
21
21
21
mp
pn
nm
Condizioni per la corrispondenza tra regioni adiacenti:
2121 MMmm +=+
L’insieme delle condizioni è un set di vincoli di un problema di ottimizzazione combinatoria
Generazione di Mesh di volume
Generazione di Mesh di volume
Generazione di Mesh di volume
Bubble Meshing [Shimada-Gossard]
Physically-Based non-manifold meshing
Output: • una mesh triangolare hyrid-dimension
Input:• un dominio non-manifold• una funzione di distribuzione d(x,y,z)
Oss: un insieme di packedspheres è “simile” al diagramma di Voronoi dei centri delle sfere
Generazione di Mesh di volume
Algoritmo:1) filling: riempire il dominio con sfere di raggio proporzionale alla
densità specificata2) relaxation: aggiustare la posizione delle sfere in modo da
minimizzare “overlapping” e “gap”
Filling (caso celle unidimensionali):
1x2x
)x(d 2)x(d 1
1x2x
due sfere di vengono posizionate agli estremi dell’elementose non c’è overlapping, una sfera viene aggiunta nel punto medio
L’algoritmo procede ricorsivamente fino al riempimento
3x
Il raggio delle sfere è determinato dalla funzione densità
Generazione di Mesh di volume
Relaxation:La finale disposizione delle sfere è ottenuta stabilizzando la posizione delle sfere rispetto alla forza agente su di esse definita come:
0000
0
023
051
510
510
k)l(f,)l.(f)l(f
ll.
l.ldclblal)l(f
' −===
≤≤≤+++
=
L’equazione del moto:
)t(fdt
)t(dxc
dt
)t(xdm i
ii
ii =+2
2
È integrata sul tempo (metodo Runge-Kutta del IV ordine)
Generazione di Mesh di volume
Controllo della popolazione:- sfere con un eccessivo grado di overlapping sono eliminate- vengono aggiunte sfere dove si sono creati dei “gap”
Alpha Shapes [Edelsbrunner94]
Il Convex Hull dei punti è una possibile definizione della superficie
Def: Convex hull di }ppp{ h,,, K10
'CHCHCHp,'HS'CH
CHp,HSCH
CH
j'i
ji
n
⊆⇒∈∀=∀
∈∀=ℜ∈
I
I
Def: Empty half-space EHS:Semispazio non contenente punti di S
EHS\CH n∞
ℜ= UDef: Convex hull di S
Generazione di Mesh di volume
Problema: qual è la superficie di un oggetto espresso come insieme di punti?
Alpha Shapes
• Def: empty αααα-ball Palla di raggio α non contenente punti del point set S
• Def: αααα--Hull Complemento dell’unione di tutte le empty α-ball
• L’alpha-shape è un politopo non necessariamente convesso e non necessariamente connesso derivabile dalla triangolazione “pesata” di Delaunay con peso α∈[0,∞)
Generazione di Mesh di volume
BallE\RH n αα∞
= U
Triang. Di Delaunay
Point Set
Diagramma di Voronoi
Alpha Diagram Alpha triangolazione
Generazione di Mesh di volume
Delaunay Shape Alpha Shape
• Se α = 0 l’ α -shape è il point set• Se α →∞ l’ α -shape è il convex hull• Un numero finito di soglie definisce tutte
le shapes possibili (al più ) hαααα
Generazione di Mesh di volume
Alpha Shapes: generalizzazioni• Scale density alpha-shape
α non è una costante ma una funzione della densità dei punti: migliora il risultato quando la densità di distribuzione dei punti nel dominio non è costante
• Anisotropic alpha-shapeellissoidi in luogo di sfere i.e. metrica definita da un ellissoide
Generazione di Mesh di volume
alpha-shape scaled Scaled & anisotropic
Recommended