Geometric Mesh Processing:
Mesh Generation
Fabio Ganovelli
[email protected]
ISTI- CNR
Introduzione
Tipi di mesh: mesh strutturate
Una mesh regolare è una decomposizione in elementi i cui vertici
sono espressi come mapping di un dominio più semplice
Γ' = f ( Γ )
f ( 0 ,1 )
Γ = [ 0,1] × [ 0,1]
f
f ( 1,1 )
Γ'
f ( 1,0 )
f ( 0 ,0 )
• Richiedono poca memoria
• Facilità di applicazione del metodo
alle differenze finite
• difficile determinare mapping che
approssimino “bene” domini complessi
• non sempre possibile
Introduzione
Tipi di mesh: mesh non strutturate
Decomposizione in elementi finiti
• possibilità di approssimare domini
arbitrariamente complessi
• Maggiore richiesta di memoria per la
memorizzazione
Da dove vengono le mesh?
Mesh Generation
Triangolazione 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
Introduzione
Definizioni
• Una mesh è una decomposizione di un sottoinsieme compatto
n
di R 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:
∅
σ Iτ = 
 una faccia di entrambi
– 3. n è il massimo ordine dei simplessi di Σ
Mesh Generation in due dimensioni
Mesh simpliciali in
Input
Poligono
Semplice
Compl.
in tempo O(n)
Poligono
con buchi
O(n log h)
R
2
PSLG (Planar Point Set
Straight Line
Graph)
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
Mesh Generation in due dimensioni
Criteri di ottimalità
Un criterio di ottimalità si definisce con funzioni f: T → R, di tipo:
f = max[min]{ f ( τ ) : τ ∈ Γ}
o
f =
f (τ )
∑
τ
∈Γ
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
Mesh Generation in due dimensioni
Es: Aspect Ratio
Def: L’aspect ratio è data dal rapporto tra il lato più lungo e
l’altezza relativa a tale lato
b
c
h
a
a
f (t )=
h
2
≤ f ( t ) ≤ +∞
3
min
2
3
a
h
L’aspect ratio è legata
all’angolo minimo θ :
1
2
≤ f (t )≤
sinθ
sinθ
f (t )=
h
a
max
f ( t ) → +∞
Mesh Generation in due dimensioni
Triangolazione di Delaunay
• Def: Cella di Voronoi di un punto p∈ S:
cVi = { x ∈ ℜ :| xpi |≤| xp j |∀p j ∈ S }
h
• Def: Diagramma di Voronoi di un point set S:
V = UcVi
• Def: Triangolazione di Delaunay di un point set S:
triangolazione contenente tutti e soli i lati che connettono due
punti che condividono un lato della cella di Voronoi (duale del
diagramma di Voronoi)
Mesh Generation in due dimensioni
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
b
b
a
a
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
b
c
a
b
c
a
Preview di domani
• Lift-transformation
ψ : ℜ n → ℜ n +1
n
ψ ( x1 , K , xn ) = x1 , K, xn , ∑ xi2
i =0
ψ ( x, y ) = ( x , y , x 2 + y 2 )
• Proprieta’ incredibile:
– La proiezione sul piano dell’intersezione dei piani tangenti ai punti
“lifted” produce in diagramma di Voronoi dei punti sul piano
Mesh Generation in due dimensioni
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
d
T
c
a
f (T ' ) = f ( abd ) + f (bcd ) <
f (abc) + f ( acd ) = f (T )
b
Complessità O(n2)
T’
d
c
a
b
Mesh Generation in due dimensioni
Ottimi globali
Variando il criterio per decidere quando due triangoli adiacenti
devono 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
T1
Aggiunta di un
lato candidato
a
b
T2
Retriangolazione
T1
migliore
n
Ripristina
precedente
s
a
T2
b
Mesh Generation in due dimensioni
Anchor property
Def: 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 anchor
property
Es: f(T) = max-angle gode della Weak Anchor Property
Teorema: se f soddisfa la WAP ⇒ l’algoritmo Edge Insertion
determina l’ottimo globale in O(n3)
Se vale SAP la complessità scende a O(n2log n)
Mesh Generation in due dimensioni
Poligoni Semplici:Programmazione dinamica
Una triangolazione di un poligono semplice che ottimizzi una
funzione decomponibile può essere calcolata in O(n3)
[Klincsek80]
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:
• ∃g : f ( T ) = g ( f ( T1 ), f ( T2 ), a ,b ) monotona
• g è calcolabile in O(1)
• se T è un triangolo, f(T) è calcolabile in O(1)
T1
a
T2
b
f ( T ) = min Area
g( f1 , f 2 ,a ,b ) = max( f1 , f 2 )
f ( T ) = MWT
g ( f1 , f 2 ,a ,b ) = f1 + f 2 − ab
Mesh Generation in due dimensioni
dati vi ,v j , P( i , j ) = poligono formato dai vertici vi ,vi +1 ,K ,v j
ottimo di f su P( i , j ) se ( vi ,v j ) è una diagonale
F( i, j )= 
altrimenti
+ ∞
F ( 1,k ) = ottimo globale
F ( i , j ) = min g ( g ( f ( vi v j vk ), F ( i ,k ),vi ,vk ), F ( k , j ),vk ,v j )
i≤k ≤ j
1424
3
vj
vk
F ( 1,n ) = ottimo di f
Nell’implementazione F(1,k) è
calcolato iterativamente
vn
vi
Mesh Generation in due dimensioni
Un Problema aperto: Minimum Weight
Triangulation
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 convessi
2. Triangolazione greedy dei poligoni
L’algoritmo fornisce una approssimazione O(log n) [Plaisted & Hong 87]
Mesh Generation in 3 dimensioni
Superfici 2D embedded in 3D
• Ricostruzione da sezioni planari (tiling)
• Marching Cubes
• Ball Pivoting
3D 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
Generazione di Mesh Superficiali
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
poligoni
Problema: 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 chiuse
2. L’intersezione tra una qualunque linea verticale passante per i due
slices e la superficie ricostruita è un punto, un lato o è vuota
3. 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] :
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 α
Output: superficie con valore α e con derivata lungo la normale
non nulla (isosuperficie)
Il valore del campo in un punto p è ottenuto per interpolazione
trilineare del valore nei vertici della cella che lo contiene
p01
p11
10
1
5
∑f
i , j =0
y
α = 7.5
f = 7.5
7
0,0
f ( x, y ) =
i , j =1
x
1
3
p00
p10
ij ⋅( 1 −
x )1−i x i ( 1 − y )1− j y j
Generazione di Mesh Superficiali
Marching Cube: configurazioni
• Configurazioni possibili: 2^8=256, ma si riducono a quattordici
classi di equivalenza considerando rotazioni mirroring e
complemento
Generazione di Mesh Superficiali
Marching Cube: LookUp Table
7
3
LookUpTable
5
0
1
2
3
2
4
0
6
1
0 0 0 0 0 0 0 1
76 5 4 3 2 10
: nil
: {e0,e4,e8}
: ….
: ….
….
…
255: nil
Per ogni permutazione del valore del campo rispetto alla soglia,
memorizza I triangoli della configurazione corrispondente
Generazione di Mesh Superficiali
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 una
nuova cella richiede solo valutare tre nuovi edges
• Se non si vuole duplicare i vertici occorre ricordarsi i vertici
calcolati 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?
Issues:
• Consistenza. Produrre una mesh C0 e manifold: casi
ambigui
• 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
Generazione di Mesh Superficiali
Marching Cubes: casi ambigui
?
Generazione di Mesh Superficiali
Marching Cubes: casi ambigui
?
Generazione di Mesh Superficiali
Punti di sella
Valore del campo su una faccia
f ( 0 , x , y ) = c yz + d y + g z + h
 ∂f ( 0 , x' , y'

∂y

 ∂f ( 0 , x' , y'

∂x
)
d
c
)
g
= c y' + g = 0 ⇒ y' = c
= c z' + d = 0 ⇒ z' = -
α
α
f ( 0 , x' , y' )
Generazione di Mesh Superficiali
ELUT: Exhaustive LUT
…..
Face saddle points
body saddle point
ELUT:
Per ogni configurazione ambigua determina la triangolazione
coerente in base ai valori dei punti di sella
Generazione di Mesh Superficiali
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 un
vertice nel centro del cubo, suddivisione
a 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 meglio
l’isosuperficie
Generazione di Mesh Superficiali
Extended MC
Y
D2Y > 0
X
Surface
Exact intersection
point
D1Y < 0
D1X < 0
D3X > 0
Generazione di Mesh Superficiali
MC
tangent element
normal
Reconstructed
surface
normal
tangent element
Generazione di Mesh Superficiali
Extended MC
Marching Cubes
Extended Marching Cubes
Generazione di Mesh Superficiali
Discretized Marching Cubes
• Il punto di attraversamento dell’isosuperficie e’ sempre il punto
medio
• 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
Vertice del dual MC
Vertice di MC
Generazione di Mesh Superficiali
Generazione da punti: Ball Pivoting
• Una sfera di raggio ro “rotola” sui punti, ogni tripla di punti che
tocca 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 della
sfera)
– 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 superficie
contiene almeno un vertice
Mesh di Volume
Introduzione
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 object
modeling)
Generazione di Mesh di volume
Misure di qualità
• Topologica:
1 n
εt =
δι − D
=
0
i
n
6 triangoli
D=
12 tetraedri
∑
• Geometrica:
Def ( più comune): L’Aspect Ratio di un tetraedro è il rapporto
tra il raggio della sfera circoscritta e il raggio di quella inscritta

r
 A − i
i =0
Ri

0.5 triangoli

A= 2
 11 tetraedri

1
εg =
m
∑
m



r
R
Generazione di Mesh di volume
Qualità geometrica: casi pessimi
Needle
Sliver
Wedge
Cap
La Triangolazione di Delaunay 3D:
minimizza il raggio della min-containment sphere con raggio
massimo
non ottimizza l’Aspect Ratio
Generazione di Mesh di volume
Triangolazione di Poliedri
Poliedri non triangolabili: es. di Schonhardt
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
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
2
Si può costruire un poliedro semplice che necessita di n punti
di Steiner per poter essere diviso in regioni convesse (lower
bound per la triangolazione) [Chazelle91]
2
Ogni poliedro può essere triangolato con n punti di Steiner
È un problema NP-completo decidere se un poliedro è
triangolabile senza aggiungere punti di Steiner
[Garey&Johnson79]
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
Vantaggio
La superficie della triangolazione da costruire è nota è può
essere usata come base nella costruzione
Svantaggio
La superficie della triangolazione da costruire è nota e quindi
la triangolazione è constrained: più difficile e meno gradi di
libertà nelle ottimizzazioni
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
N
Il fronte è vuoto
S
end
Generazione di Mesh di volume
Advancing Front Tetraedralization
Fronte iniziale
Costruzione fronte di offset
Triangolazione dello strato tra i fronti
Offset front
N
Il fronte è vuoto
Costruzione del fronte di offset
Generazione di punti lungo le
normali alle facce
+
correzione del fronte di offset
S
end
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 diametro
massimale tangente al poligono (poliedro)
•
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
medial axis
•
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 Point
Subdivision
Mid Point Subdivision
1. Aggiunta di un punto su ogni lato
2. Aggiunta di un punto interno
3. Nuovi lati tra i mid points sui lati e
quello interno
Risultato: le regioni ottenute sono
quadrilateri
Generazione di Mesh di volume
Medial Axis Transform
Condizioni per le mesh di una
regione:
m1 = n2

n1 = p2
p = m
 1
2
Condizioni per la corrispondenza tra
regioni adiacenti:
m1 + m2 = M 1 + M 2
L’insieme delle condizioni è un set di
vincoli di un problema di
ottimizzazione combinatoria
Generazione di Mesh di volume
Generazione di Mesh di volume
Bubble Meshing [Shimada-Gossard]
Physically-Based non-manifold meshing
Input:
• un dominio non-manifold
• una funzione di
distribuzione d(x,y,z)
Oss: un insieme di packed
spheres è “simile” al
diagramma di Voronoi dei
centri delle sfere
Output:
• una mesh triangolare hyriddimension
Generazione di Mesh di volume
Algoritmo:
1) filling: riempire il dominio con sfere di raggio proporzionale alla
densità specificata
2) relaxation: aggiustare la posizione delle sfere in modo da
minimizzare “overlapping” e “gap”
Filling (caso celle unidimensionali):
due sfere di vengono
posizionate agli estremi
dell’elemento
se non c’è overlapping, una
sfera viene aggiunta nel
punto medio
L’algoritmo procede
ricorsivamente fino al
riempimento
x2
x1
d ( x1 )
d ( x2 )
x2
x3
x1
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:
al 3 + bl 2 + cl + d
f (l )= 
0
0 ≤ l ≤ 1.5 l0
1.5l0 ≤ l
f ( l0 ) = f ( 1.5l0 ) = 0 , f ' ( l0 ) = −k0
L’equazione del moto:
d 2 xi ( t )
dxi ( t )
mi
+
c
= fi ( t )
i
2
dt
dt
È 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”
Generazione di Mesh di volume
Alpha Shapes [Edelsbrunner94]
Problema: qual è la superficie di un oggetto espresso come
insieme di punti?
Il Convex Hull dei punti è una possibile definizione della superficie
Def: Convex hull di { p0 , p1,K, ph }
CH ∈ ℜn
CH = I HSi , ∀p j ∈ CH
∀CH ' = I HS'i' ,∀p j ∈ CH ⇒ CH ⊆ CH '
Def: Empty half-space EHS:
Semispazio non contenente punti di S
Def: Convex hull di S
CH = ℜn \ U EHS
∞
Generazione di Mesh di volume
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
αH = R n \ U Eα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
Diagramma di Voronoi
Triang. Di Delaunay
Point Set
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 α 0 < α1 < α 2 < L < α h definisce tutte
le shapes possibili (al più 2n 2 − 5n )
Generazione di Mesh di volume
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-shape
ellissoidi in luogo di sfere i.e. metrica definita da un ellissoide
alpha-shape
scaled
Scaled & anisotropic
Scarica

Generazione di Mesh Superficiali