Sviluppo di un algoritmo adattativo per la poligonizzazione di super

Transcript

Sviluppo di un algoritmo adattativo per la poligonizzazione di super
POLITECNICO DI TORINO
Facolta di Ingegneria
Corso di Laurea in Ingegneria Informatica
Tesi di Laurea
Sviluppo di un algoritmo
adattativo per la poligonizzazione
di superci implicite
Relatore:
prof. Aldo Laurentini
Candidato:
Andrea Bottino
Ottobre 1995
A Claudia
Indice
1 Introduzione
5
2 L'algoritmo Shrinkwrap
2.1 Approssimazione della supercie : : : : : : : : : : : : : : : : : : :
2.1.1 Cos'e una supercie accettabile : : : : : : : : : : : : : : : :
2.1.2 Stima dell'errore in caso di curvatura monotona : : : : : : :
2.1.3 Stima dell'errore nel caso generale : : : : : : : : : : : : : :
2.2 Un algoritmo per arrivare ad una struttura triangolare accettabile :
2.3 Come ottenere dei vertici sulla supercie : : : : : : : : : : : : : : :
2.4 Come ottenere una supercie chiusa : : : : : : : : : : : : : : : : :
2.5 Come ottenere una tassellatura accettabile : : : : : : : : : : : : : :
2.6 L'algoritmo : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :
2.7 Risultati ottenibili : : : : : : : : : : : : : : : : : : : : : : : : : : :
:
:
:
:
:
:
:
:
:
:
10
10
12
12
12
14
15
17
18
19
22
3 Limiti dell'algoritmo
24
4 Singolarita e superci
31
5 Superci di separazione
39
3.1 Cos'e un punto critico : : : : : : : : : : : : : : : : : : : : : : : : : : 25
3.2 Comportamento della struttura triangolare : : : : : : : : : : : : : : : 27
3.3 Validita dei lemmi : : : : : : : : : : : : : : : : : : : : : : : : : : : : 29
4.1 Come si possono trovare i punti critici : : : : : : : : : : : : : : : : : 31
4.2 Piani di simmetria della supercie : : : : : : : : : : : : : : : : : : : 34
4.3 Avvicinandosi al punto critico : : : : : : : : : : : : : : : : : : : : : : 37
2
Indice
5.1 Cosa fare delle corde rosse : : : : : : : : : : : : : : : : : : : : : : : : 39
5.2 Caratteristiche dell'insieme T : : : : : : : : : : : : : : : : : : : : : : 43
5.3 Come stabilire il tipo delle superci di separazione : : : : : : : : : : 44
6 Come ricostruire una struttura corretta
6.1 Distribuzioni con un solo punto critico
6.1.1 Il piano separatore : : : : : : :
6.1.2 Ricostruire una rottura : : : :
6.1.3 Ricostruire un buco : : : : : :
6.2 Distribuzioni con piu punti critici : : :
6.2.1 Alcune denizioni : : : : : : :
6.2.2 Ricostruire l'intera struttura :
7 L'algoritmo modicato
7.1
7.2
7.3
7.4
Il nuovo algoritmo : : : : : :
Analisi dei risultati : : : : : :
Conclusioni : : : : : : : : : :
Ulteriori sviluppi della ricerca
:
:
:
:
:
:
:
:
A How to shrinkwrap a saddle point
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
A.1 Introduction : : : : : : : : : : : : : : : : : : : : : : :
A.2 Critical points : : : : : : : : : : : : : : : : : : : : : :
A.2.1 How the region around a critical point behaves
A.3 The surface : : : : : : : : : : : : : : : : : : : : : : : :
A.3.1 What is happening to the surface : : : : : : : :
A.3.2 How to detect red edges : : : : : : : : : : : : :
A.4 Fixing the topology : : : : : : : : : : : : : : : : : : :
A.4.1 Is it a ssure or is it a hole? : : : : : : : : : : :
A.4.2 How to x the topology : : : : : : : : : : : : :
A.5 Dealing with complex topologies : : : : : : : : : : : :
A.5.1 Some denitions : : : : : : : : : : : : : : : : :
A.5.2 How to proceed : : : : : : : : : : : : : : : : :
3
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
46
46
47
47
49
50
51
52
54
54
58
59
61
62
62
64
65
67
68
70
74
76
79
84
84
85
Indice
A.6 Evaluations : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 87
A.7 Conclusion : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 88
A.8 Acknowledgments : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 88
4
1
Introduzione
Il lavoro svolto in questa tesi e stato realizzato presso l'Universita Tecnica di Eindhoven (Technische Universiteit Eindhoven), in Olanda e si inquadra nell'ambito del
progetto ERASMUS, progetto nalizzato allo scambio di studenti fra Universita appartenenti agli stati della Comunita Europea. Oltre agli stimoli oerti dal confronto
con una mentalita e un modo di vivere dierenti da quelli italiani, questa esperienza
mi ha anche oerto la possibilita di essere inserito in un gruppo di lavoro aatato, il Technische Toepassingen Group, sempre disponibile nell'aiutarmi a superare i
problemi derivanti dall'inserimento in un ambiente nuovo.
Una parte della tesi, scritta in inglese, comprende il documento di ricerca depositato presso la stessa universita. L'introduzione e gli altri capitoli scritti in italiano
servono per descrivere le basi di partenza di questo lavoro, e per introdurre dettagliatamente alcuni punti trattati velocemente per necessita di brevita nella stesura
del documento stesso.
Questo lavoro si basa su un algoritmo comparso in [Overveld 93], chiamato Shrinkwrap, per la costruzione di una poligonizzazione adattativa di superci implicite che
godono di particolari proprieta. Lo scopo di questa tesi e di proporre una modica
e un ampliamento dell'algoritmo in grado di trattare indistintamente qualsiasi tipo
di supercie implicita.
Le superci utilizzate nel seguito sono denite come superci equipotenziali di un
campo scalare generato da uno scheletro di base. Le superci equipotenziali sono una
importante classe di superci implicite e assumono un ruolo signicativo nel campo
della graca al computer per la modellazione, l'animazione e la visualizzazione. Allo
stesso tempo, diverse superci di un certo interesse nel campo della pura matematica,
della sica e della chimica sono superci equipotenziali; si consideri, ad esempio, la
distribuzione di tensione in una parte meccanica oppure la distribuzione di pressione
in un uido contenuto in un recipiente.
5
1 { Introduzione
Recentemente un interesse crescente verso le superci implicite puo essere riscontrato nel campo del disegno geometrico assistito al calcolatore (CAGD, Computer
Aided Geometric Design). La ragione di cio e data dal fatto che alcuni problemi nel
processo di modellazione geometrica possono essere risolti solo con sforzi notevoli
utilizzando superci in rappresentazione parametrica, mentre gli stessi possono essere risolti in maniera relativamente semplice utilizzando la forma implicita. Tipici
problemi di questo genere sono, ad esempio, la costruzione di superci di fusione
(blending surfaces) che uniscano due o piu superci date, oppure la costruzione di
una supercie di oset rispetto ad una supercie data.
Contrariamente all'interesse dimostrato e confrontata con l'abbondanza di letteratura sulle superci parametriche, sono ancora relativamente pochi gli studi sulle
superci in forma implicita. Gli articoli citati qui di seguito costituiscono una summa dei lavori disponibili, al momento, sull'argomento.
In [Schmidt 93] la supercie implicita e denita come l'insieme dei valori per cui
e nulla la funzione f : R ! R, dove la funzione f puo essere polinomiale, trascendentale oppure puo essere denita in maniera procedurale, con l'unica richiesta di
continuita per f . Lo svantaggio maggiore che introduce questo metodo e la dicolta
di controllare la forma della supercie, in quanto gli eetti generati dai parametri
non sono in genere intuibili.
In [Wyvill 86] viene descritto un approccio per modellare, visualizzare e animare
i cosiddetti soft objects, oggetti o insiemi di oggetti rappresentati da un campo scalare. In pratica la supercie che denisce l'oggetto e una supercie isopotenziale del
campo stesso (cioe la regione dello spazio in cui la funzione che denisce il campo
ha valore costante) ed e generata a partire da un insieme di funzioni elementari che
agiscono localmente, rendendone piu intuitivo l'utilizzo rispetto a funzioni algebriche. Approcci simili si possono trovare in [Blinn 82] e [Bloomenthal 90]. Witkin,
in [Witkin 94], propone invece un sistema a particelle per generare e controllare
superci implicite in movimento. Tali particelle vengono legate alle superci attraverso semplici regole e il comportamento del sistema e determinato dalle equazioni
dierenziali che specicano il movimento dell'insieme di particelle.
Uno svantaggio signicativo della rappresentazione di superci in modo implicito
e dato dal fatto che in genere e abbastanza dicile visualizzarle e ombreggiarle.
Questa dicolta e uno dei piu grandi ostacoli che limitano l'utilizzo della forma
implicita rispetto a quella parametrica. I metodi utilizzati per la visualizzazione sono
principalmente due: il primo e quello di utilizzare il ray tracing ([Holmstrom 89]),
una tecnica che permette di produrre immagini fotorealistiche; tuttavia, trovare
l'intersezione di un raggio con una supercie implicita e spesso un compito arduo, e
la quantita notevole di calcoli richiesti ne pone restrizioni all'uso. In piu il risultato
nale che si ottiene e costituito solamente da un insieme di punti i cui attributi
dipendono dalla particolare vista scelta; cambiando il punto di visione bisogna rifare
3
6
1 { Introduzione
tutti i calcoli, ed e quindi impensabile utilizzare il ray tracing in applicazioni real
time.
Il secondo metodo consiste nella conversione delle superci implicite in strutture
poligonali che la approssimino e che possano successivamente essere ombreggiate;
un ulteriore vantaggio di questa tecnica e quello di poter disporre di una completa approssimazione in tre dimensioni della supercie implicita, che permetta cosi
di avere velocemente viste da posizioni arbitrarie senza la necessita di risolvere la
funzione implicita tutte le volte. In piu e possibile applicare alla struttura creata
diverse tecniche di post-processing, come ad esempio lo smoothing ([Cohen 94]), che
genera una struttura regolare a partire da un insieme di poligoni irregolari, o la
free form deformation ([Sederberg 86]), che permette di deformare oggetti sia localmente che globalmente. In seguito si fara riferimento a questa tecnica col termine
poligonizzazione ([Bloomenthal 87]).
L'idea di base di tutte le tecniche di poligonizzazione esistenti e una suddivisione
appropriata dello spazio in analisi, mediante una griglia uniforme di elementi cubici
o tetraedrici. La funzione viene campionata nei vertici degli elementi di base e
l'approssimazione poligonale viene generata a partire dagli elementi i cui vertici non
sono tutti interni o tutti esterni alla supercie. Questo metodo comporta diversi
svantaggi. In primo luogo si introduce una divisione dello spazio piuttosto che una
tassellatura della supercie da poligonalizzare. Specialmente nel caso di animazioni,
questo puo causare eetti ondulatori sulla supercie in movimento rispetto alla
griglia di riferimento, che e ssa nello spazio. In piu, se questa e troppo larga,
alcune piccole peculiarita della supercie possono non essere evidenziate.
In secondo luogo questi algoritmi creano una incoerenza tra il numero di triangoli generati e la complessita della supercie da approssimare: la stessa densita di
faccette viene infatti usata per regioni ad elevata curvatura e per parti della supercie relativamente piatte, dando origine complessivamente ad un gran numero
di faccette. Per rendere il processo di poligonizzazione piu eciente, Bloomenthal
([Bloomenthal 88]) descrive un metodo adattativo che utilizza un octree, una struttura ad albero di grado otto. La radice dell'albero si riferisce in genere all'intero
volume e punta ad altri otto nodi, corrispondenti alle parti in cui esso e stato diviso.
Ognuno di questi otto nodi puo quindi puntare ad altri otto sottonodi relativi alle
otto parti di ogni sottovolume. Per rendere adattativa la poligonizzazione, la suddivisione dei sottovolumi si basa sulla curvatura della supercie da approssimare.
Questa tecnica riduce eettivamente il numero di poligoni generati, ma puo essere
sfruttata pienamente solo se la regione piatta cade interamente in un ottante. La
maggior parte di questi metodi, inoltre, assume implicitamente che la supercie in
esame sia regolare, oppure che il processo di suddivisione possa essere spinto ad un
punto tale da consentire di avere una intersezione non ambigua con la supercie.
7
1 { Introduzione
In [Schmidt 93] viene mostrato come in alcuni casi queste assunzioni non siano valide, e viene proposta un'estensione del lavoro di Bloomenthal in grado di trattare
singolarita della supercie.
Un ultimo limite di queste tecniche e dato dal fatto che la supercie creata non
dispone di un proprio sistema di coordinate, il che rende abbastanza dicile, ad
esempio, l'applicazione a tali strutture di una texture mapping.
L'algoritmo Shrinkwrap introduce un dierente approccio al problema. Le superci implicite vengono denite come superci equipotenziali generate da uno scheletro
di base che ha lo scopo di modellare gli "oggetti" di interesse, cioe le superci isopotenziali stesse. Tale scheletro e composto da una serie di elementi, ad ognuno
dei quali e associata una funzione di campo fi. La supercie S e denita dall'insieme di punti p 2 R che soddisfano f (p) = 1, dove f e data dalla somma delle
funzioni di campo degli elementi che compongono lo scheletro. Tali elementi possono essere rappresentati da diverse entita geometriche (punti, linee, superci, ecc...),
anche se nel seguito della trattazione verranno considerate come primitive solo i
punti. L'algoritmo genera una struttura approssimante triangolare che e adattativa
al comportamento locale della supercie piuttosto che essere imposta a priori da una
suddivisione dello spazio, nel senso che la lunghezza dei lati dei triangoli componenti la struttura varia secondo la curvatura locale della supercie sottostante; quindi,
parti della supercie relativamente piatte saranno costituite da triangoli piu larghi
rispetto a regioni ad elevata curvatura. Come ulteriore vantaggio, risulta abbastanza
semplice assegnare alla struttura creata un sistema di coordinate proprio.
L'idea di base di questo algoritmo e abbastanza semplice. Invece di costruire
direttamente una approssimazione per la supercie nale f (p) = 1 si puo partire
da una supercie ad un potenziale piu basso. Successivamente si procede per passi
attraverso potenziali via via crescenti no ad arrivare alla congurazione nale,
adattando la struttura alle superci intermedie. Quando, al crescere del potenziale,
cresce anche la curvatura della supercie, le regioni corrispondenti saranno composte
da un numero maggiore di faccette.
Questo algoritmo impone pero una importante limitazione data dal fatto che
non puo trattare con tutti i tipi di superci. Infatti a causa del metodo utilizzato,
superci contenenti singolarita non sono approssimabili, o, per essere piu precisi,
non sono trattabili congurazioni dello scheletro di base che introducano punti critici
all'interno del campo di potenziale.
Partendo dall'algoritmo di base presentato in [Overveld 93] e analizzando in modo piu dettagliato i casi in cui non e applicabile, verra proposto un nuovo algoritmo
in grado di poligonizzare superci isopotenziali aventi caratteristiche diverse; inoltre tale modica mantiene intatta la losoa di base dell'algoritmo originario. Il
3
8
1 { Introduzione
capitolo 2 introduce l'algoritmo Shrinkwrap; il capitolo 3 descrive piu specicatamente i problemi di tale algoritmo e i casi in cui si presentano; nel capitolo 7.1
vengono presentate le modiche apportate all'algoritmo originale. Nel capitolo 7.3
vengono tratte le conclusioni nali, e, inne, l'appendice A contiene il documento di
ricerca conclusivo di questo lavoro, rilasciato alla Technische Universiteit Eindhoven
(Olanda).
9
2
L'algoritmo Shrinkwrap
Presentiamo ora l'algoritmo iniziale, che produce una poligonizzazione di una supercie implicita isopotenziale, denita da un insieme di elementi di base. Contrariamente agli approcci precedenti, basati su una struttura a griglia, la locazione dei
punti della struttura approssimante e arbitraria e i triangoli che la compongono sono
di dimensioni e forme dierenti secondo la curvatura della supercie sottostante. In
piu e possibile determinare il grado di accuratezza di tale approssimazione. Nei capitoli seguenti viene brevemente introdotto l'algoritmo Shrinkwrap; nel paragrafo x2.1
vengono introdotti dei prerequisiti matematici necessari per l'esposizione dell'algoritmo; il paragrafo x2.6 presenta l'algoritmo vero e proprio, mentre nel capitolo x2.7
viene presentata una breve analisi quantitativa dei risultati ottenuti.
2.1 Approssimazione della supercie
Prima di introdurre i concetti che sono alla base dell'algoritmo e necessario fare due
osservazioni.
In primo luogo, costruendo una tassellatura adattativa per la supercie, il parametro piu ovvio come indicatore della risoluzione della tassellatura e la curvatura
locale della supercie. In molti casi una misura di questa curvatura locale (la curvatura Gaussiana) puo essere calcolata analiticamente. Quando pero la supercie
viene approssimata da un certo insieme di campioni connessi da una qualche struttura, l'interpretazione da dare al valore della curvatura nei punti considerati non e
del tutto chiara. Per esempio, la supercie potrebbe avere una elevata curvatura
tra due campioni adiacenti ma, se fosse piatta in un intorno dei medesimi, potremmo non accorgercene e la struttura creata potrebbe non rispecchiare fedelmente le
caratteristiche della supercie sottostante.
10
2 { L'algoritmo Shrinkwrap
Per permettere all'algoritmo di essere il piu generale possibile, invece della curvatura Gaussiana (che e un attributo della supercie che vogliamo approssimare),
vengono utilizzati dei parametri della struttura generata e successivamente vengono
dedotte delle stime sulla deviazione massima tra la supercie e la struttura stessa.
Una seconda osservazione riguarda le primitive usate per la tassellatura. La
scelta migliore, per diversi motivi, sembra essere quella di utilizzare primitive triangolari: un triangolo ha il minor numero possibile di gradi di liberta (9 coordinate
dei vertici), e sempre convesso e giace sempre su un piano. Percio si puo introdurre una struttura triangolare in cui ogni triangolo approssimi una sezione della
supercie globale. Come conseguenza, l'analisi dell'errore implica l'uso della geometria dierenziale delle superci; per aggirare alcune delle dicolta tecniche che
questa introduce le corde verranno considerate come approssimazioni di curve sulla
supercie equipotenziale. Questo signica che l'approssimazione della struttura sara
costituita da una struttura triangolare, ma l'analisi dell'errore verra eettuata sui
lati dei triangoli, cioe le corde, invece che sui triangoli stessi.
Considerando queste due osservazioni, possiamo enunciare una serie di concetti
di base; , and Lmax sono parametri reali usati per caratterizzare l'algoritmo.
la supercie e denita da f (r) = 0, dove r 2 R .
una corda e una quadrupla (a;b;na;nb) 2 R R R R , dove f (a) =
f (b) = 0, na = rf (a) e nb = rf (b).
la supercie e detta accettabile se e solo se per ogni corda della supercie
6 (na ;nb ) ja , bj, dove 6 (p;q ) e l'angolo tra p e q .
una corda e accettabile solo se 6 (na;nb) e ja , bj Lmax
un triangolo, composto da tre corde, e chiamato accettabile solo se tutte e tre
3
3
3
3
3
le corde sono accettabili.
L'algoritmo cerca di costruire una struttura composta da triangoli accettabili.
Di seguito vengono introdotti alcuni lemmi utilizzati per la stima dell'errore della
tassellatura come approssimazione della supercie. In questi lemmi viene fatto uso
della cosiddetta approssimazione di curva piana, che assume che, per ogni corda,
le normali na e nb e la stessa corda siano coplanari. In questo modo una corda
introduce un segmento di curva piana, p(t) situata nella supercie f (r) = 0 tra i
punti a e b, perpendicolare in questi punti rispettivamente a na e nb. La curva piana
introdotta viene chiamata l'ombra della corda perche puo essere vista come l'ombra
generata dalla corda sulla supercie se illuminata da una sorgente luminosa posta
sul piano a cui appartengono la corda e le normali nei suoi estremi. Si assume che
la corda sia parametrizzata dalla sua lunghezza d'arco.
11
2 { L'algoritmo Shrinkwrap
Piuttosto che derivare asserzioni sulla massima deviazione tra punti della struttura triangolare e punti della supercie implicita, si possono derivare asserzioni sulla
massima deviazione tra le corde della struttura e le loro ombre. In questo modo le
ombre servono da concetto intermedio tra la tassellatura e la supercie equipotenziale.
2.1.1 Cos'e una supercie accettabile
Per la prova dei seguenti lemmi si prega il lettore di fare riferimento a ([Overveld 93]).
Il primo lemma collega la proprieta di accettabilita di una supercie con la massima
curvatura dell'ombra di una qualsiasi corda.
Lemma 1 In una supercie accettabile, la curvatura jp(t)j per ogni ombra di corda
p(t) e sempre minore o uguale a 2.1.2 Stima dell'errore in caso di curvatura monotona
Assumendo che per una data corda la sua ombra abbia una curvatura monotona
(cioe che sia dappertutto 6 (p;_ p) = =2, o, per dirlo diversamente, che la corda e
la sua ombra formino una regione convessa), il lemma 2 fornisce un limite superiore
per la deviazione relativa tra una corda e la sua ombra.
Lemma 2 Nel caso una corda abbia un'ombra monotona, la deviazione relativa
massima e 12 tan 2 :
Si noti che questo risultato vale indipendentemente dal valore di e che, al
diminuire di , la deviazione massima sara sempre piu piccola.
2.1.3 Stima dell'errore nel caso generale
Innanzitutto bisogna far notare che la deviazione relativa massima puo essere illimitata nel caso di superci autointersecanti, come si puo vedere in g. 2.1a. Se
la supercie non e autointersecante (e questo e il caso delle superci equipotenziali
che stiamo trattando), la deviazione massima e illimitata solo se la curva ha una
tangente che e perpendicolare alla corda, come mostrato in gura 2.1b. Si puo dimostrare che, dato un valore massimo per la curvatura di un'ombra di corda, si
puo determinare una lunghezza massima Lmax per la corda, in modo tale che, se
tutte le corde sono accettabili rispetto a Lmax, non si presentino situazioni in cui la
tangente e perpendicolare alla corda e quindi non ci siano deviazioni illimitate.
12
2 { L'algoritmo Shrinkwrap
nB
nA
nB
nA
B
B A
A
(a)
(b)
Figura 2.1. Errore illimitato nel caso di superci autointersecanti (a) e nel caso
di superci non autointersecanti (b).
Lemma 3 Se Lmax (1 , sin =2), non ci sono deviazioni illimitate.
2
Il lemma 4 da un limite superiore per la deviazione relativa massima nel caso di
una corda di lunghezza minore di Lmax.
Lemma 4 Nel caso di una supercie non autointersecante,
la deviazione relativa
p
tra una corda e la sua ombra e minore o uguale a
,
1+cos( 2 )
1 sin( 2)
,
3
Riassumendo i risultati dei lemmi introdotti precedentemente, abbiamo:
data la supercie equipotenziale che vogliamo poligonizzare, determiniamo il
parametro ;
utilizzando il lemma 2 calcoliamo un valore di che assicuri una data tolleranza
relativa in regioni monotone della supercie;
il lemma 3 ci permette quindi di calcolare un Lmax che eviti il vericarsi di
errori non limitati;
dato il lemma 4 fornisce un limite superiore all'errore in qualsiasi punto della
supercie.
13
2 { L'algoritmo Shrinkwrap
2.2 Un algoritmo per arrivare ad una struttura
triangolare accettabile
Una carica puntiforme e una tupla (R;) dove R e un punto in R e e la sua carica.
Il potenziale dovuto a questa carica nel punto r e
(2.1)
f (r) = jr , Rj
3
che
La supercie equipotenziale al valore di potenziale 1 e l'insieme dei punti r tali
1 = jr , Rj
oppure
fr 2 R jjr , Rj = g
3
in altre parole e una sfera centrata in R di raggio . Una distribuzione di cariche e
un insieme di N cariche puntiformi (e possibile comunque generalizzare utilizzando
altri tipi di primitive come linee, triangoli, quadrilateri, ecc: : : )
f(Ri;i) 2 R Rji = 0 N , 1g
3
Per un insieme di cariche distribuite nello spazio, la supercie equipotenziale e data
da
X
fr 2 R j jr ,iR j = 1g
i
i
3
Le superci equipotenziali possono avere forme abbastanza complicate. Nel capitolo 2.1 abbiamo ricavato dei criteri per stabilire se un insieme di corde approssima
sucientemente una supercie. Rimane da discutere:
come ottenere dei vertici sulla supercie.
come garantire che venga generata una supercie chiusa.
come garantire che questa supercie sia approssimata soltanto da corde accettabili.
Dopo aver introdotto questi punti nei paragra x2.3, x2.4, x2.5, nella sezione x2.6
viene presentato l'algoritmo completo.
14
2 { L'algoritmo Shrinkwrap
2.3 Come ottenere dei vertici sulla supercie
La tavola A.1 rappresenta una sezione bidimensionale di una distribuzione di cariche;
i colori indicano il valore del potenziale nei vari punti. Osserviamo che le superci
equipotenziali
X
fr 2 R j jr ,iR j = V g
i
i
3
0
con V < 1 (cioe le superci che passano dal viola al giallo) hanno una forma che
e meno avviluppata, mentre le superci equipotenziali con V > 1 lo sono di piu.
Il caso estremo della prima situazione e V = 0, che produce una sfera di raggio
innito.
Guardiamo piu attentamente la relazione tra V e la massima curvatura della
supercie equipotenziale. La curvatura della supercie si puo calcolare come una
matrice C, dierenziando due volte la funzione f (r):
X
C = r : rf (r) = jr ,iR j Ai
i
i
0
0
0
0
5
dove
jr , Rij , 3Ti xx
,3Ti yx
,3Ti zx
,3Ti xy
jr , Rij , 3Ti yy
,3Ti zy
Ai = B@
,3Ti xz
,3Ti yz
jr , Rij , 3Ti zz
0
2
;
2
;
;
;
;
;
;
2
;
1
C
A
;
e ad esempio
Ti xx = (r:x , Ri :x)(r:x , Ri:x)
;
Essendo jr , Rij = Ti xx + Ti yy + Ti zz , nessun elemento di Ai e in valore assoluto
piu grande di 3jr , Rij e quindi ogni elemento c di C e limitato da
X
jcj 3 jr ,iR j
(2.2)
i
i
2
;
2
;
;
3
Considerando un punto r sulla supercie a potenziale V , si ha
X
i = V
i jr , Ri j
0
0
Se tutti i i sono non negativi, per tutti gli i abbiamo
jr , Rij > Vi
0
15
2 { L'algoritmo Shrinkwrap
Utilizzando questo risultato in (2.2) otteniamo:
X
i
jcj 3 ( =V
i )
i
oppure
X
jcj 3V 1
i i
0
3
0
3
2
Quindi, la curvatura massima della supercie si riduce drasticamente se si riduce
V , e come conseguenza anche si riduce.
Da questa osservazione si puo trarre il seguente procedimento per ottenere dei
vertici sulla supercie determinata da V = 1. Per prima cosa bisogna trovare
dei vertici su una supercie equipotenziale ad un valore piccolo rispetto a V . Dal
momento che quest'ultima supercie ha dappertutto una curvatura molto minore,
questo dovrebbe essere relativamente facile. Successivamente si puo incrementare in
piccoli passi V no al valore V = 1, spostare i vertici sulle superci isopotenziali
intermedie e, se necessario, modicare l'insieme delle corde in modo da mantenere
una struttura poligonale costituita da sole corde accettabili. Se gli incrementi di
V sono abbastanza contenuti, lo sono, di conseguenza, anche gli incrementi della
curvatura massima e ogni passo successivo dovrebbe risultare abbastanza semplice.
In piu, utilizzando questo approccio a passi, possiamo utilizzare una espansione
di Taylor troncata al primo ordine per calcolare la nuova posizione di un vertice
quando il valore di V viene incrementato di una quantita V . Si assuma che r
sia sulla supercie f (r) = V , e quindi sia f (r) = V ; stiamo cercando una nuova
posizione, r + , tale che
0
0
0
0
0
0
0
0
0
f (r + ) = V + V
0
Una espansione di Taylor attorno a = 0 da:
f (r + ) = f (r) + rf (r) + O(jj ) = V + V
2
0
oppure considerando che f (r) = V
0
V = rf (r)
Questo pero non ci dice in che direzione debba essere preso . Una scelta ragionevole
puo essere
= rf (r)
16
2 { L'algoritmo Shrinkwrap
che da come risultato:
= rf (rV
) rf (r)
La nuova posizione e quindi data da:
rf (r)
r + rfV
(r) rf (r)
(2.3)
2.4 Come ottenere una supercie chiusa
La piu semplice struttura chiusa costituita da poligoni consiste in un tetraedro,
composto da 4 vertici, 4 triangoli e 6 corde. Come alternativa puo essere usato un
ottaedro, che ha 6 vertici, 8 triangoli e 12 corde. Nel caso che una o piu delle corde
non siano accettabili, devono essere divise. La gura 2.2 mostra come un triangolo
possa essere diviso in triangoli piu piccoli. Nel caso della divisione di due corde
sono possibili due alternative: nel caso jMAB , C j < jMBC , Aj la nuova corda sara
MAB , C , altrimenti sara MBC , A.
C
C
MBC
MBC
B
B
A
A
C
C
B
MAB
A
C
MAC
MBC
MBC
B
B
A
MAB
A
C
MAC
MBC
B
B
MAB
A
C
MBC
MBC
A
MAB
MAB
Figura 2.2. Lo schema di suddivisione dei triangoli.
17
2 { L'algoritmo Shrinkwrap
Lo schema di suddivisione puo essere utilizzato per assegnare coordinate di supercie a tutti i nuovo vertici creati. Supponendo che ai 4 o 6 vertici originali siano
state assegnate delle coordinate superciali, le coordinate superciali che devono
essere assegnate ad un nuovo vertice m possono essere denite come la media delle
coordinate superciali dei due vertici estremi dell'arco in cui m viene generato.
2.5 Come ottenere una tassellatura accettabile
Dalla denizione di corda accettabile sappiamo che il modo migliore per rimediare
ad una corda non accettabile e quello di dividerla, generando un nuovo vertice che si
trovi sulla supercie equipotenziale. Un modo semplice per eettuare tale operazione e illustrato nelle gure 2.3a-d. La corda di partenza e A , B in gura 2.3a; M e
il punto medio della corda A , B . Le curve punteggiate rappresentano la direzione
del gradiente del campo vicino alla supercie equipotenziale. Se spostiamo il punto
M secondo l'equazione (2.3), arriviamo in M 0 , come indicato dalla linea tratteggiata. Bisogna notare che in genere M 0 non si trovera esattamente sulla supercie,
dal momento che si utilizza solamente una approssimazione lineare per f (r). Per
avvicinare il punto alla supercie, bisogna iterare (2.3) no a che non lo si possa
considerare sucientemente vicino; la corda B , M 0 sara molto probabilmente accettabile, anche perche e molto piu piccola del necessario, mentre molto dicilmente
lo sara M 0 , A. Percio, come illustrato in gura 2.3b, dobbiamo ripetere il processo
sulla corda A , B . Alla ne otterremo un gran numero di piccole corde superue,
come illustrato in gura 2.3d. La principale causa di questo comportamento e dovuta al fatto che vengono tratte informazioni sulla geometria e sui gradienti del campo
dai punti M , M , ecc: : : , che possono essere lontani dalla supercie. Questo puo
causare una lenta convergenza e la creazione di molte piccole corde non necessarie.
Una strategia piu eciente deve utilizzare informazioni piu adabili, cioe informazioni derivanti da punti che si trovino gia sulla supercie. Nella gura 2.4a
la congurazione e identica a quella in gura 2.3a. Tramite le normali nei punti
estremi, e possibile approssimare l'ombra della curva con una curva di Bezier p(t),
dove t e la parametrizzazione d'arco. Tale curva passa per gli estremi A e B della
corda ed e ivi perpendicolare alle normali nA e nB . Prendendo come punto M il
punto medio parametrico di p(t), cioe p(1=2), e iterando (2.3), otteniamo un punto
M che e verosimilmente piu vicino alla supercie equipotenziale del punto M in
gura 2.3a; quindi, anche il gradiente calcolato in M e verosimilmente piu adeguato
per ottenere corde accettabili del gradiente calcolato in M . In questo caso M , B
puo gia essere considerata accettabile, mentre la corda A , C (come nell'esempio in
gura 2.4b) puo aver bisogno di una ulteriore suddivisione.
1
1
1
1
1
1
1
1
1
2
1
2
1
1
1
18
2 { L'algoritmo Shrinkwrap
nA
nB
M1
A
nB
nA
B1
A
B1
M2
M’1
M’2
(b)
(a)
nB
nA
nB
nA
A
B1
M3
B3
A
B1
M4
B2
B3
(c)
M’3
B2
B3
B2
(d)
M’4
Figura 2.3. Costruzione di un nuovo vertice ripetendo la suddivisione di una corda
non accettabile e spostando il nuovo vertice lungo il gradiente del campo.
nB
nA
A
nB
nA
B1
B1
A
M
nC
M’
M
M’
(a)
C
(b)
Figura 2.4. Costruzione di un nuovo vertice denito come il punto medio parametrico della curva passante per A e B e ivi tangente, rispettivamente, a nA e
nB .
2.6 L'algoritmo
Seguendo la notazione introdotta nelle sezioni precedenti, siamo ora in grado di
scrivere l'algoritmo completo. I vertici sono deniti come quadruple (r;E;V;d) 2
R R R R ); l'attributo r e la posizione; E e il gradiente rf (r); V e il
3
3
3
19
2 { L'algoritmo Shrinkwrap
valore del potenziale f (r), e d e il vettore di spostamento che deve essere applicato
a questo vertice.
Le corde contengono due riferimenti ai vertici negli estremi, e due riferimenti
ai due triangoli adiacenti. In piu una corda ha associato un valore booleano n per
indicare se e accettabile.
La dierenza di potenziale V e una frazione del potenziale nale V , ad esempio
V = V =10, e per V sara usato il valore V = 1. Usando queste convenzioni,
l'interpretazione della carica e semplicemente "il raggio della sfera equipotenziale
se fosse l'unica carica della distribuzione".
L'insieme di vertici di partenza e costituito dai vertici dell'oggetto iniziale (un
tetraedro o un ottaedro); si assume che esso sia sucientemente grande da essere
esterno alla intera supercie equipotenziale per il valore iniziale 1=10. Tutti i vertici
v hanno inizialmente v:V = 0, v:E punta radialmente verso l'interno, e v:d =
v:E=(v:E v:E ).
In prima approssimazione, l'algoritmo (in pseudo-Pascal) ha la seguente struttura:
0
0
begin
end;
0
0
V0:=0;
while V0 < 1.0 do
begin
V0:=V0+DeltaV;
S1;
f tutti i vertici sono sulla supercie; per ogni vertice v abbiamo
v.V=f(v.r)
v.E=grad f(v.r)
v.d=(V0-v.V)*v.E=(v.Ev.E)g
S2;
f tutti i vertici sono sulla supercie; per ogni vertice v abbiamo
v.V=f(v.r)
v.E=grad f(v.r)
v.d=(V0-v.V)*v.E=(v.Ev.E)
tutte le corde sono accettabilig
end;
f tutti i vertici sono sulla supercie;
tutte le corde sono accettabili e V0=1.0g
dove S1 e:
20
2 { L'algoritmo Shrinkwrap
for tutti i vertici v do
repeat
v.r:=v.r+v.d;
v.V:=f(v.r);
v.E:=grad f(v.r);
v.d:=(V0-v.V)*v.E=(v.Ev.E);
until jv.dj <Epsilon;
e S2 e:
azzerare l'etichetta di tutti i triangoli
for tutte le corde c do
begin
c.n := "c non e` accettabile"
f per decidere l'accettabilita` o meno di una corda, usare e1.E e e2.E
come direzioni delle normali in e1.r e e2.r per gli estremi e1 ed e2 della corda g
end;
while ci sono corde non accettabili do
begin
for tutte le corde c con c.n := true do
begin
creare un nuovo vertice w per la corda c, come spiegato in x2.5;
spostare w sulla supercie come in S1;
etichettare i due triangoli adiacenti ad e;
creare due nuove corde per i frammenti di c, c1 e c2;
c1.n := "c1 non e` accettabile"
c2.n := "c2 non e` accettabile"
rimuovere la corda c;
end;
f tutte le corde inizialmente non accettabili
sono state divise, ma nuove corde non accettabili possono essere state create g
for tutti i triangoli etichettati t do
begin
dividere t come spiegato nella sezione x2.5;
creare 2,3 o 4 nuovi triangoli;
for tutte le nuove corde generate ci do ci.n := "ci non e` accettabile";
rimuovere il triangolo t;
f tutti i triangoli delimitati inizialmente da corde non accettabili sono stati divisi,
ma nuove corde non accettabili possono essere state generate g
end;
21
2 { L'algoritmo Shrinkwrap
end;
2.7 Risultati ottenibili
Una breve analisi dei risultati ottenibili con questo algoritmo, puo essere eettuata tenendo conto del seguente fatto: un algoritmo di poligonizzazione come quello
presentato, deve valutare una funzione implicita per un certo numero di punti nello
spazio; l'ecienza di questo algoritmo, cosi come quella di altri algoritmi simili, dipende dal numero di queste valutazioni di funzioni implicite (IFE, Implicit Function
Evaluations) mediate sul numero di triangoli generati (IFE Per Triangle - IFEPT).
L'algoritmo introdotto nel paragrafo precedente, e stato implementato. Dall'analisi dei risultati ottenibili, si ricava che l'ecienza del metodo non e fortemente
inuenzato dal numero di iterazioni utilizzate per raggiungere la supercie nale.
Ad esempio, presa una istanza campione che permette di disegnare un pinguino, il
numero ottimo di iterazioni e stato valutato in 7, che da come risultato in termini
di IFEPTS 7,06. Se utilizzassimo un numero di iterazioni maggiore, ad esempio 11,
otterremmo 8,38 valutazioni per triangolo; solo eettuando un numero di iterazioni
molto piu grande (ad esempio 30) si avrebbe una sensibile riduzione dell'ecienza
(circa 20,75 valutazioni per triangolo). La qualita del risultato nale, comunque, non
e assolutamente alterata dal numero di iterazioni eettuata non appena l'algoritmo
converge.
Le tavole B.1 e B.2 illustrano due esempi dei risultati producibili. La prima
tavola mostra un pinguino insieme alla struttura triangolare nale; qui l'adattativita
dell'algoritmo e chiaramente visibile. Il collo e la parte interna delle gambe, ad
esempio, sono composte quasi esclusivamente da triangoli molto sottili, mentre nella
parte sferica della testa ne troviamo di piu aperti. Nelle regioni di maggior curvatura
inoltre, la struttura triangolare ha una risoluzione piu elevata. L'aspetto nale del
pinguino e sicuramente un po naif, ma il tocco artistico e una variabile dicilmente
quantizzabile in termini matematici.
La tavola B.2 mostra il comportamento della struttura in relazione ad una supercie quasi piatta: i triangoli che la compongono sono uniformemente distribuiti
e quasi equilateri.
I vantaggi che ore questo algoritmo sono pero limitati dal fatto che non permette
di poligonizzare qualsiasi tipo di supercie isopotenziale. Infatti esso si basa sulla
premessa che le superci in analisi non siano autointersecanti; purtroppo non e
sempre possibile assicurare che questa condizione sia vericata.
Occorre quindi capire quando e perche si presentano situazioni di tale genere e
22
2 { L'algoritmo Shrinkwrap
in che modo occorre modicare l'algoritmo originale per tenerne conto. Questi temi
saranno arontati nei successivi capitoli.
23
3
Limiti dell'algoritmo
Come gia accennato in precedenza nell'introduzione e nel capitolo x2, l'algoritmo
Shrinkwrap, a causa del metodo utilizzato per costruire una poligonizzazione adattativa, e in grado di operare solo con un sottoinsieme limitato di superci implicite.
Le superci analizzate sono infatti denite come superci di livello di un campo
scalare, generato da un insieme di elementi di base; per costruire una tassellatura
della supercie isopotenziale scelta, avente un potenziale V , si parte da un oggetto
iniziale che "avvolge" una supercie ad un valore molto minore di V e si procede
a passi spostando i vertici su superci a potenziali maggiori, suddividendo per ogni
passo le corde e i triangoli non accettabili secondo le speciche del paragrafo x2.5.
Questo procedimento si basa pero sulla premessa che le superci in analisi non siano
autointersecanti; tale assunzione deve essere vericata sia per le superci nali sia
per quelle intermedie utilizzate dall'algoritmo.
I problemi sorgono nei casi in cui la distribuzione delle cariche introduca dei punti
critici all'interno del campo di potenziale, a causa dei quali le superci equipotenziali
cambiano, al crescere del valore del potenziale, le loro caratteristiche geometriche e
topologiche. E' possibile, ad esempio, che una singola supercie si scinda in due o
piu superci separate oppure che una supercie aumenti il suo ordine di connessione
(cioe si generi un vero e proprio buco al suo interno). Se si verica questa possibilita, occorre modicare la struttura approssimante generata in modo da mantenerla
coerente con le nuove caratteristiche assunte dalla supercie isopotenziale; l'oggetto di partenza, un tetraedro o un ottaedro, e infatti una singola supercie chiusa
semplicemente connessa.
Se non si eettua questa operazione, una parte della struttura diventa irrimediabilmente non accettabile nel proseguimento del processo. Ogni suddivisione di
triangoli e corde non accettabili dara luogo nuovamente ad un insieme di triangoli e
corde non accettabili, bloccando l'algoritmo.
0
0
24
3 { Limiti dell'algoritmo
Inoltre i cambiamenti delle superci isopotenziali passano attraverso superci
autointersecanti, che rappresentano il punto di contatto tra le diverse congurazioni.
Da questo deriva che alcune delle assunzioni fatte nel capitolo x2 non sono piu valide;
ad esempio, si puo vericare una deviazione relativa illimitata anche se le corde
hanno tutte una lunghezza minore di Lmax (si veda la gura 2.1).
Nei prossimi paragra cercheremo di introdurre piu approfonditamente il problema. Nel paragrafo x3.1 verra denito cos'e un punto critico, quali sono le sue
caratteristiche e quali sono i possibili cambianti della supercie; il paragrafo x3.2
spieghera come si comporta la struttura creata dall'algoritmo, mentre nel paragrafo x3.3 si spieghera in quali casi si possono considerare validi i lemmi utilizzati
dall'algoritmo.
3.1 Cos'e un punto critico
Un punto critico, o punto singolare, di una funzione implicita f (r) = 0, r 2 R , e
un punto r in cui il gradiente della funzione e nullo, cioe
3
0
rf (r ) = 0
(3.1)
0
e
det(Jr0 ) 6= 0
dove J e il Jacobiano di rf (r) ([Artley 65]).
Si osservi come esempio la gura 3.1. Il punto critico generato dalla congurazione di cariche si trova nell'origine. Le due cariche hanno lo stesso valore di e
sono disposte lungo l'asse z simmetricamente rispetto all'origine, per cui i contributi
delle due sorgenti al gradiente nell'origine si annullano. La gura 3.1a mostra come
appaiono nel piano yz le superci equipotenziali generate dalla distribuzione; l'andamento delle linee di usso e rappresentato in gura 3.1b. Un insieme di linee di
usso si interseca nel punto critico, ma in questo punto supercie equipotenziale e
linee di usso non si intersecano ad angolo retto: questa caratteristica e peculiare del
comportamento di un punto critico e non si verica in nessun altro punto del campo
scalare. Come si puo notare, la supercie isopotenziale che passa per il punto critico
e autointersecante ed e l'unica con tale proprieta. Per ottenere una rappresentazione
tridimensionale di entrambi i diagrammi, li si puo ruotare attorno all'asse z.
I tipi di cambiamenti determinati nelle superci equipotenziali da punti critici
sono essenzialmente riconducibili a due casi. Il primo e quello dato da congurazioni simili a quella mostrata in gura 3.1; inizialmente abbiamo una unica supercie
25
3 { Limiti dell'algoritmo
z
+
z
ρ
y
y
+
ρ
Superfici equipotenziali
(a)
Direzione delle linee di flusso
(b)
Figura 3.1. Superci equipotenziali e linee di usso sul piano yz per due cariche
equivalenti.
equipotenziale che, riducendosi all'aumentare del potenziale, si spezza in due distinte superci. Nel punto critico la supercie si concentra in un unico punto Una
rappresentazione tridimensionale di tali superci si puo trovare nelle tavole D.1-6.
Un caso diverso e quello in cui si crea un "buco" nella supercie. Si consideri ad
esempio la gura 3.2, in cui e mostrato un toro a densita di carica uniforme; anche
in questo caso il punto critico e situato nell'origine (la somma di tutti i contributi
al gradiente e nulla). Se facciamo una sezione dello spazio lungo il piano yz, la
congurazione delle superci equipotenziali e delle linee di usso e simile a quella
illustrata in g 3.1. In questo caso, pero, se vogliamo ottenere una rappresentazione
tridimensionale, bisogna eettuare una rotazione dei due diagrammi lungo l'asse y.
La supercie si concentra nel punto critico ma ora, invece di avere due superci
distinte, quando il valore di potenziale supera quello del punto critico all'interno
della supercie si forma un buco, e questa incrementa il suo ordine di connessione
(tavole E.1-7).
Possiamo quindi associare un "tipo" ad ogni punto critico a seconda del comportamento che determina nella supercie critica, cioe una singolarita puo essere un
buco oppure una rottura.
L'insieme delle corde non puo adattarsi ai cambiamenti della supercie ma deve
essere necessariamente modicato. Occorre prima capire cosa succede in un intorno
del punto critico.
26
3 { Limiti dell'algoritmo
z
d
d
d
y
d
x
Figura 3.2. Toro a densita di carica uniforme posizionato sul piano y = 0.
3.2 Comportamento della struttura triangolare
Dopo aver analizzato qual'e il comportamento delle superci reali nell'intorno di un
punto critico, dobbiamo vedere cosa succede alla tassellatura creata dall'algoritmo
in corrispondenza dei cambiamenti topologici della supercie sottostante.
Secondo le denizioni del capitolo x2, la supercie e approssimata da un insieme
di triangoli i cui lati introducono sulla supercie una serie di curve piane, le ombre
delle corde. Per la determinazione di tali curve si utilizza l'approssimazione di curva
piana introdotta nel paragrafo x2.1. Chiamiamo per semplicita valore critico il valore
del potenziale del punto critico e supercie critica la supercie corrispondente a tale
potenziale.
Consideriamo ora una congurazione di cariche che introduca nel campo un
punto critico; si prenda ad esempio quella di gura 3.1. Le curve a potenziale
crescente ottenute dall'intersezione delle superci isopotenziali con un piano passante
per il punto critico e per le due cariche sono mostrate nelle gure 3.3, 3.4 e 3.5. Il
comportamento di tali intersezioni, come gia mostrato nel paragrafo x3.1, e uguale
per entrambi i tipi di punti critici. Sia V il potenziale della supercie e Vc il
valore critico. Analizziamo il comportamento della corda A , B (appartenente alla
struttura) al crescere di V .
La supercie di gura 3.3 ha un potenziale minore del valore critico; gli estremi
A e B della corda disegnata si trovano sulla supercie equipotenziale e la corda
0
0
27
3 { Limiti dell'algoritmo
A
B
Figura 3.3. Supercie equipotenziale per V0 < Vc
approssima correttamente una curva di supercie.
A
B
Figura 3.4. Supercie equipotenziale per V0 = Vc
Incrementando il valore di V no a Vc si raggiunge la supercie critica, mostrata
in gura 3.4, che passa per il punto critico ed e autointersecante. I vertici A e
B della corda di partenza, supponendo che essa sia accettabile e che quindi non
venga divisa, vengono spostati sulla nuova supercie. A , B rappresenta ancora
l'approssimazione di una curva sulla supercie.
In gura 3.5 e invece rappresentata una supercie ad un valore appena maggiore
del valore critico; la supercie si e spezzata in due superci distinte oppure ha
incrementato il suo ordine di connessione. I punti A e B si trovano sulla supercie
ma la corda non e piu coerente in quanto non approssima nessuna curva: la supercie
vera e propria, infatti, e "sparita" da sotto la corda nel processo di contrazione. Allo
stesso modo, anche i triangoli di cui la corda fa parte non approssimano piu nessuna
regione della supercie. La supercie isopotenziale ha cambiato le sue proprieta
geometriche mentre la struttura approssimante non e stata in grado di adeguarsi.
0
28
3 { Limiti dell'algoritmo
A
B
Figura 3.5. Supercie equipotenziale per V0 > Vc
Occorre far notare che la corda A , B puo ancora essere accettabile e in genere
lo e, in particolare quando il potenziale della supercie e sucientemente vicino al
valore critico. Questo perche i criteri di accettabilita si basano sui valori limite di e ; la supercie di g 3.5 ha in realta caratteristiche particolari. Questa situazione
sara trattata nel paragrafo x3.3.
3.3 Validita dei lemmi
Data la possibilita che si generino superci autointersecanti, vengono a cadere molte
delle considerazioni di base fatte nel capitolo 2 durante la presentazione dell'algoritmo. Per mantenerne intatta la struttura e la losoa di fondo, occorre pero
considerare validi i lemmi 3 e 4. Il lemma 3 stabilisce la lunghezza massima che puo
assumere una corda in funzione di e anche non si verichino deviazioni illimitate mentre il lemma 4 fornisce un limite superiore per l'errore di approssimazione
in qualsiasi punto della supercie.
Occorre fare due importanti considerazioni. In primo luogo, come si vede in gura 3.4 la supercie equipotenziale puo essere autointersecante; facendo riferimento
alla gura 2.1(a), questo signica che la deviazione tra la corda e la sua ombra
non e limitata. Possiamo pero considerare il seguente fatto: l'oggetto iniziale e una
struttura chiusa che avvolge "esternamente" la supercie ad un potenziale piccolo
rispetto al valore nale; vertici e archi sono ripetutamente spostati su superci a
potenziali crescenti, assicurando che ad ogni passo la struttura creata sia composta
solo da corde e triangoli accettabili. Se la supercie iniziale non e autointersecante
(e possiamo garantire che questa condizione sia sempre vericata, riducendone in
caso di necessita il potenziale) si puo aermare intuitivamente che non si vericano
deviazioni illimitate tra corde e superci. Infatti, dal momento che le corde sono
29
3 { Limiti dell'algoritmo
inizialmente esterne alla supercie e le diverse superci sono sucientemente vicine,
non si vericano casi in cui una corda diventi interna.
In secondo luogo, nel punto critico la curvatura della supercie diventa molto
elevata, al limite innita. Il parametro dell'algoritmo rappresenta la massima curvatura della supercie equipotenziale. Il valore scelto per tale parametro permette
di determinare con precisione l'errore della approssimazione costruita ma, scegliendo
un superiore al massimo valore di curvatura che si puo determinare nel processo
di contrazione della supercie, si possono ottenere dei criteri di accettabilita troppo
restrittivi; il valore di Lmax per la supercie critica, ad esempio, sarebbe (al limite)
nullo o comunque estremamente piccolo, determinando nella struttura una elevata
densita di triangoli. Per ovviare a questo problema possiamo considerare che in
superci a potenziali leggermente superiori del valore critico (ad esempio Vc + c)
la curvatura e elevata solo in un intorno ristretto del punto critico mentre altrove e
limitata da un valore massimo che rispetti le caratteristiche descritte nel capitolo 2 (cioe, quando le superci si riducono all'aumentare del potenziale, si riduce in
corrispondenza anche il raggio di curvatura).
Questo signica che nell'intorno specicato del punto critico le relazioni introdotte non sono piu valide; possono quindi risultare accettabili alcune corde (come
ad esempio la corda A , B in gura 3.5), che in realta non sottendono nessuna
curva di supercie; per queste curve, inoltre, la tangente all'ombra e perpendicolare
alla corda. Questa situazione si verica pero solo ad un potenziale maggiore del
valore critico; no a quel punto le assunzioni fatte si possono ritenere valide. Allo
stesso tempo i lemmi 3 e 4 continuano a valere per tutte le corde che eettivamente
sottendono una curva di supercie anche quando la struttura non e piu corretta.
Rimane quindi da discutere:
come localizzare i punti critici introdotti dalla distribuzione di cariche;
come assicurare che venga generata una supercie accettabile ad un potenziale
maggiore del valore critico;
come identicare la parte della struttura da eliminare.
Dopo aver introdotto questi punti nei paragra x4.1, x4.3 e x??, nel capitolo x5
verra spiegato come si puo ricostruire una struttura corretta.
30
4
Singolarita e superci
Nel capitolo precedente abbiamo dato una denizione di singolarita, spiegando quali
caratteristiche determina nello spazio circostante. In particolare, le superci equipotenziali cambiano proprieta geometriche e topologiche quando il loro valore supera il
potenziale del punto critico. Questo determina la comparsa nella struttura di corde
non appartenenti alla supercie, che quindi devono essere eliminate.
E' necessario percio conoscere il potenziale (e quindi la posizione) delle eventuali
singolarita del campo introdotte dall'insieme di cariche che denisce la supercie.
Utilizzando un metodo di ricerca per passi (il metodo di Newton-Raphson), e possibile trovare le radici del gradiente del potenziale partendo da vertici appartenenti
alla struttura. Inoltre per ricostruire correttamente la supercie e necessario avere ulteriori informazioni sulla supercie reale, informazioni che si possono ricavare
tramite una approssimazione della funzione di campo nell'intorno della singolarita.
Si puo quindi enunciare in prima approssimazione una struttura denitiva dell'algoritmo che consideri tutti i problemi enunciati no ad ora. L'obbiettivo nale
e quello di evidenziare e rimuovere l'insieme di corde della struttura triangolare che
non fa parte della supercie isopotenziale e che dovra essere sostituito in modo che
la struttura risulti corretta. Il paragrafo x?? introduce un possibile metodo per la
marcatura di tale insieme.
4.1 Come si possono trovare i punti critici
Data una distribuzione di cariche, e necessario calcolare se essa genera dei punti
critici al suo interno. La ricerca di questi punti non puo pero essere eettuata in
maniera esaustiva nello spazio; infatti il costo dovuto a questa operazione ne renderebbe impraticabile l'applicazione a distribuzioni molto complesse e, anche nei casi
piu semplici, comporterebbe una drastica limitazione dell'ecienza dell'algoritmo.
31
4 { Singolarita e superci
Un metodo piu ecace utilizza le caratteristiche della funzione stessa.
La funzione f (r) denita come
X
f (r) = jr ,iR j
i
i
e una funzione continua e ha derivata continua. Questo implica che in un intorno
del punto critico, il gradiente della funzione tende, con continuita, al valore zero.
Il metodo di Newton-Raphson fornisce un modo molto eciente per trovare
le radici di una funzione se si dispone di una ipotesi di partenza sucientemente
buona; altrimenti, diverge in maniera altrettanto spettacolare: questo fatto fornisce
una indicazione, anche se non ne e una prova, del fatto che in un intorno del punto
prescelto non si trova nessuna radice dell'equazione.
Nel caso generale, indichiamo con x il generico punto di partenza scelto e con F
l'insieme delle N funzioni che devono essere azzerate nelle variabili xi;i = 1 N :
Fi(x ;x ; : : :;xN ) = 0
1
i = 1;2; : : : N
2
Nell'intorno di x ogni funzione Fi puo essere espansa con una serie di Taylor
Fi(x + x) = Fi(x) +
N
X
j =1
@Fi x + O(x )
@xj j
2
che si puo scrivere, considerando l'insieme di tutte le funzioni, come
F(x + x) = F(x) + x J + O(x )
dove J e il Jacobiano di F, cioe la matrice formata dalle derivate parziali @Fi=@xj .
Tralasciando i termini di ordine superiore e ponendo F(x + x) = 0, otteniamo un
2
insieme di equazioni lineari che ci permettono di avvicinare l'argomento alla radice
della funzione
x J = ,F
Le correzioni devono essere inne aggiunte al vettore di partenza:
x n = xn + x
(4.1)
+1
iterando (4.1) no alla convergenza, dove
x = ,F J,
1
32
4 { Singolarita e superci
([Press 86-2]). Nel caso particolare, siamo interessati a trovare le radici di rf , per
cui la formula (4.1) diventa:
xn = xn , rf (xn) J,
+1
(4.2)
1
dove J e il Jacobiano di rf . Dei buoni candidati come punti iniziali, potrebbero
essere i vertici appartenenti ad una supercie sucientemente vicina ad un punto
critico in un suo intorno prestabilito. Infatti l'intersezione tra tale intorno e la
supercie e una regione di minimo della lunghezza del gradiente. Per costruire
questo intorno, pero, dovremmo sapere in partenza dove si trova il punto critico,
e lo stessa osservazione si puo fare per la verica di una condizione di suciente
vicinanza tra la supercie e il punto stesso.
Sfruttando l'approccio a passi dell'algoritmo, si puo fare un discorso dierente. Ad ogni passo si puo costruire un insieme S di vertici componenti la struttura
creata da utilizzare come punti di partenza per l'applicazione del metodo di NewtonRaphson. Non potendo disporre di ulteriori informazioni, il criterio di appartenenza
all'insieme S sara determinato dalla lunghezza del gradiente nel vertice; si puo quindi determinare un valore soglia n per il quale, detto V l'insieme dei vertici della
struttura, si abbia:
S = fv 2 V jjrf (v)j < ng
Il valore di n scelto deve essere tale da mantenere contenuta la dimensione di S ,
ma non troppo piccolo per evitare di escludere punti che potrebbero dare dei buoni
risultati. Per determinarlo si puo operare essenzialmente in due modi:
denire n come un parametro iniziale;
calcolare n in base alle caratteristiche dell'insieme dei vertici della supercie.
Il primo metodo e sicuramente il piu semplice, ma non e per niente essibile: il
limite puo infatti diventare troppo piccolo o troppo grande, determinando insiemi
vuoti o comprendenti tutti i vertici. Ricalcolando n per ogni supercie si puo
stabilire a priori la dimensione di S , oppure fare in modo che la sua dimensione sia
una determinata percentuale della dimensione dell'insieme V dei vertici di partenza.
Siccome i livelli di potenziale sono tali per cui le superci successive non sono mai
troppo distanti una dall'altra, questo metodo ha un'ottima probabilita di convergere
verso i punti critici prima che il potenziale abbia superato il valore critico e quindi
prima di dover intervenire sulla struttura.
33
4 { Singolarita e superci
4.2 Piani di simmetria della supercie
Conoscendo la posizione del punto critico, e possibile determinare una approssimazione della supercie reale nelle sue vicinanze. Se facciamo una espansione di Taylor
in un intorno del punto critico, indicato con c, i termini lineari si annullano (per la
denizione stessa di punto critico), per cui otteniamo:
XX @ f
f (c + x) = f (c) + 12
@x @x xixj + h:o:t:
2
i
i
j
j
Sia J la matrice formata dagli elementi @ f=@xi@xj ; per il teorema di Schwartz,
J e simmetrica reale e quindi si puo dimostrare che gli autovalori della matrice, e
quindi anche gli autovettori corrispondenti, sono reali e, siccome c e un punto critico,
Jc ha sia autovalori positivi che negativi. Inoltre, esiste una base ortonormale di J
formata da autovettori.
Possiamo eettuare un cambio di coordinate, considerando il punto c come nuova origine e gli autovettori di J come direzioni degli assi di un nuovo sistema di
coordinate x0, y0 e z0. Scartando i termini di ordine superiore, la supercie equipotenziale puo essere approssimata, in un intorno del punto critico, con una quadrica.
Possiamo avere due casi distinti. Se la matrice ha un autovalore negativo, abbiamo
2
0
0
0
f (x0;y0;z0) = f (0) + xa + yb , zd
La supercie f (x0;y0;z0) = f (0) + per > 0 interseca il piano z = 0 in un'ellisse;
nel caso = 0 il piano z = 0 e tangente alla supercie f (x0;y0;z0) = f (0), mentre la
supercie f (x0;y0;z0) = f (0) e separata in due meta dal piano z = 0 nel caso in cui
< 0.
Se invece la matrice J ha due autovalori negativi, otteniamo
2
2
2
2
2
2
0
0
0
f (x0;y0;z0) = f (0) , xa , yb + zd
In questo caso la transizione, all'aumentare di , e da un'ellisse a due superci
separate.
Le superci nei due casi dierenti per un positivo (e quindi per un potenziale maggiore del valore critico) sono rappresentate in gura 4.1. Nella gura 4.1a
il punto critico genera un buco all'interno della supercie equipotenziale; questa,
nell'intorno del punto critico, puo essere approssimata come un iperboloide ad una
falda. Nel caso in cui la supercie subisca una frattura (gura 4.1b) nell'intorno
del punto critico si puo approssimare con un iperboloide a due falde. I segni degli
2
2
2
2
2
2
34
4 { Singolarita e superci
z
z
O
y
y
x
x
(a)
(b)
Figura 4.1.
autovalori sono stati assegnati in modo arbitrario, in modo che, in entrambi i casi,
il piano z = 0 sia tangente al cono di transizione tra le due congurazioni.
Gli autovettori di J, quindi, si possono considerare come i vettori perpendicolari
ai piani di simmetria della supercie equipotenziale nelle vicinanze del punto critico e
possono essere associati al punto critico stesso. Vedremo nei capitoli successivi come
questa informazione sia necessaria per il processo di ricostruzione di una struttura
corretta.
Potrebbe anche vericarsi il caso in cui, invece di un punto critico, si generi una
"linea critica"; questa situazione si verica, ad esempio, quando si hanno due linee
parallele innitamente lunghe oppure un cilindro cavo innito. In questo caso uno
degli autovalori e nullo. L'approssimazione fornita, tuttavia, ci puo ancora dare
informazioni utili sul comportamento della supercie. Nel caso di due autovalori
positivi otteniamo
0
0
f (x0;y0;z0) = f (0) + xa + yb
La supercie f (x0;y0;z0) = f (0) + per < 0 e un'ellisse immaginaria, per = 0
si ottiene una linea (nel caso in esempio l'asse z) mentre per > 0 si ottiene un
cilindro ellittico (gura 4.2).
Nel caso di autovalori di segno diverso otteniamo
2
2
2
2
0
0
f (x0;y0;z0) = f (0) + xa , yb
2
2
2
2
35
4 { Singolarita e superci
z
O
y
x
ε>0
ε=0
Figura 4.2.
In questo caso la supercie di transizione (per = 0) e costituita da due piani
intersecanti lungo l'asse z, e si ha un passaggio tra due cilindri iperbolici simmetrici
rispetto ai piani intersecanti (gura 4.3).
z
O
y
x
ε<0
ε=0
ε>0
Figura 4.3.
36
4 { Singolarita e superci
Si potrebbe ancora considerare il caso di due autovalori nulli, ma anche la possibilita di averne uno e comunque solo teorica; non e pensabile infatti di avere, ad
esempio, due linee innitamente lunghe. Nei casi pratici quindi, questa possibilita
puo essere scartata; rimane da considerare il fatto che, in questo caso, l'approssimazione della supercie dovrebbe tenere conto anche dei termini di grado piu elevato.
4.3 Avvicinandosi al punto critico
A questo punto possiamo enunciare in modo generale come sia possibile modicare
l'algoritmo. I cambiamenti apportati non cambiano la losoa di base dell'algoritmo
originario, ne il suo modo di procedere; in questo modo, per una supercie denita
da un insieme di cariche che non generi punti critici, il risultato nale e identico a
quello che si otterrebbe con la precedente versione. Supponiamo per il momento che
vi sia al massimo una singolarita nel campo; successivamente vedremo cosa succede
quando queste sono in numero maggiore.
L'algoritmo Shrinkwrap procede a passi verso la costruzione della supercie nale
semplicemente spostando vertici da una supercie a quella successiva e dividendo
corde e triangoli non accettabili quando necessario. Esiste quindi un insieme di
valori del potenziale a cui la supercie viene "ricomposta" e controllata; questo
insieme viene determinato dal valore iniziale, da quello del potenziale che si vuole
raggiungere e dal numero di passi in cui questo processo deve avvenire.
Abbiamo visto nel paragrafo x3.2 come i cambiamenti delle proprieta della supercie si verichino per potenziali maggiori del valore critico. Il valore critico e il
potenziale del punto critico: nel paragrafo x4.1 abbiamo presentato un metodo che
procede in parallelo al processo di costruzione della tassellatura e che permette di
calcolare la posizione nello spazio del punto critico. Conoscendone la posizione e
suciente applicare ad esso la funzione f per calcolare il valore critico. Tenendo
conto di cio si puo procedere nel seguente modo:
1. dati il valore iniziale e nale del potenziale e il numero delle iterazioni da
eettuare, si costruisce una lista contenente l'insieme dei livelli di potenziale
attraverso cui deve passare la supercie.
2. quando una supercie isopotenziale e stata raggiunta, si costruisce l'insieme S
di vertici per un n appropriato e si applica ai vertici che ne fanno parte il metodo di Newton-Raphson. Se si trovano dei punti in cui si annulla il gradiente
(al cui potenziale si ha una supercie autointersecante), si modica l'insieme
dei valori di potenziale in modo da aggiungerne uno che sia superiore al valore critico, ma che sia sucientemente piccolo da permettere di costruire una
tassellatura accettabile (come spiegato nel paragrafo x3.2). Questo valore puo
37
4 { Singolarita e superci
essere marcato come "corrispondente ad un punto critico". Le informazioni
relative al punto critico (posizione e assi di simmetria della supercie) vengono
memorizzati in una tabella per essere utilizzati successivamente.
3. quando si raggiunge un valore corrispondente ad un punto critico si deve modicare la topologia della struttura creata perche assuma le stesse caratteristiche
della supercie sottostante.
38
5
Superci di separazione
L'introduzione del concetto di corda rossa permette di identicare la parte della
struttura da rimuovere. Vedremo ora piu dettagliatamente quali sono le sue caratteristiche in funzione dei dierenti tipi di punti critici presenti.
5.1 Cosa fare delle corde rosse
Partiamo da una struttura approssimante la supercie ad un valore Vc + c (dove
Vc e il valore critico e c > 0) a cui sia stata applicata una marcatura corretta.
Come abbiamo visto nel capitolo 4.3, tale marcatura determina un insieme di archi
chiamati corde rosse e un insieme di triangoli, detti triangoli rossi, aventi almeno un
lato marcato.
A partire dall'insieme di triangoli rossi e possibile costruire un sottoinsieme T di
vertici, chiamati rev (REd triangles Vertices).
Denizione 5.1 Un vertice della struttura appartiene a T se e un vertice di un
triangolo rosso.
Tra gli elementi di T e possibile denire una relazione di vicinato.
Denizione 5.2 Due rev si dicono vicini se esiste una corda che li connette che
non e marcata come rossa.
Siccome nella struttura esiste al piu una corda che connette due vertici, si ricava
che due rev non sono vicini se sono uniti da una corda rossa.
In gura 5.1 gli archi tratteggiati rappresentato gli archi marcati, mentre i triangoli rossi sono ombreggiati. Dalla denizione si ricava che i vertici A, B , C , D e E
39
5 { Superci di separazione
C
A
R
P
D
Q
S
B
E
Figura 5.1. Relazioni di vicinato tra rev
sono rev ma non lo sono P , Q, R e S ; siccome gli archi C , D e D , E non sono
marcati, D ha come vicini C ed E ma C non e vicino di E . Lo stesso discorso vale
per A e B che sono vicini; non esistono altre relazioni di vicinato siccome tutti gli
altri archi che connettono due rev sono marcati.
Dall'insieme T si possono ricavare due sottoinsiemi (T e T ) caratterizzati dal
fatto che un qualsiasi rev appartenente ad un sottoinsieme non ha nessuna relazione di vicinato con rev appartenenti all'altro sottoinsieme. Elementi di uno stesso
insieme possono invece essere legati tra loro.
Osserviamo la gura 5.2; i punti evidenziati rappresentano, nelle diverse situazioni che si possono presentare, gli elementi di T , mentre le linee tratteggiate indicano le
corde marcate. Supponiamo di rimuovere queste corde: la supercie risultante non
e piu chiusa e i rev determinano i bordi del taglio che ne ha causato l'apertura. Essi
sono gli unici vertici della supercie aacciati verso lo spazio aperto e, come si puo
vedere, sono divisi in due gruppi distinti che determinano, insieme agli archi che deniscono le relazioni di vicinato, due superci che d'ora in avanti chiameremo superci
di separazione. Facendo riferimento al paragrafo 4.2, le superci di separazione si
possono vedere come le intersezioni delle regioni denite da f (x0;y0;z0) f (0) + c
(c > 0) con due piani di equazione z = k e z = ,k, cioe le superci in neretto di
gura 5.3. Nelle tavole C.1 e C.2 sono riportate le strutture costruite dall'algoritmo
nel caso di un buco e di una rottura.
Queste superci sono pressoche identiche, mentre la supercie isopotenziale ha
un comportamento diverso a seconda del tipo di singolarita. Il piano z = 0 divide
lo spazio in due regioni ognuna delle quali contiene interamente una sola supercie
di separazione e sara indicato come il piano separatore. Nel caso piu generale,
l'equazione di tale piano e denita dagli assi di simmetria associati al punto critico.
A partire dai sottoinsiemi di rev e possibile capire in maniera semplice qual'e il
tipo della supercie di separazione; e importante pero che gli insiemi Ti godano di
una particolare proprieta.
1
40
2
5 { Superci di separazione
Revs
Archi rossi
Figura 5.2.
Denizione 5.3 Un sottoinsieme Ti di T si dice corretto se tutti i suoi componenti
hanno esattamente due vicini rev.
Quello che potremmo aspettarci e che, data la struttura triangolare, i sottoinsiemi di T siano sempre corretti. Purtroppo non capita sempre cosi; e possibile infatti
che si verichino casi simili a quello illustrato in gura 5.4, in cui un arco fa parte
della struttura corretta ma emerge dal bordo della supercie di separazione. L'arco
A non e' marcato; il rev numero 1 ha 3 vicini (e infatti connesso con altri tre rev
41
5 { Superci di separazione
z
z
O
y
y
x
x
(a)
(b)
Figura 5.3.
attraverso archi non marcati), mentre il rev numero 2 ha un solo vicino (cioe il vertice 1). Questa situazione puo capitare, ad esempio, quando la distribuzione delle
cariche e fortemente asimmetrica; la lunghezza delle corde emergenti e in genere
molto ridotta.
Se uno o piu dei sottoinsiemi di T non e corretto, modicando l'insieme delle
corde rosse e possibile cambiare le caratteristiche di T e dei suoi sottoinsiemi nel
modo seguente:
per ogni rev con un solo vicino marcare come rosso la corda che li connette;
per ogni rev con piu di due vicini, marcare come rossi tutti gli archi che lo
connettono con rev aventi solo un vicino.
Il vantaggio di avere dei sottoinsiemi corretti e che unendo i rev tra di loro
nell'ordine stabilito dalle relazioni di vicinato, si forma una curva chiusa (la frontiera
della supercie di separazione denita dal sottoinsieme); percorrendo le relazioni di
vicinato tra rev del sottoinsieme si puo eseguire un ciclo tra tutti gli elementi del
sottoinsieme stesso.
42
5 { Superci di separazione
1
A
2
Figura 5.4.
5.2 Caratteristiche dell'insieme T
Nelle dierenti congurazioni i sottoinsiemi di T assumono caratteristiche diverse
che possono essere sfruttate per stabilire il tipo delle superci di separazione.
Quando si verica una rottura, i vertici appartenenti a superci di separazione
diverse sono connessi tra di loro solamente da una serie di corde rosse. I rev appartenenti a ciascun sottoinsieme di T possono essere collegati tra di loro solamente
da relazioni di vicinato; nessun altro tipo di collegamento e permesso. Una corda
rossa, quindi, puo collegare solamente due rev appartenenti a due sottoinsiemi diversi. Le superci denite dai sottoinsiemi T e T sono interne alla struttura creata
(gura 5.5).
Quando si verica un buco, invece, i due bordi della rottura non hanno nessun
tipo di interconnessione diretta. Due rev di sottoinsiemi dierenti possono essere
collegati solo attraverso una catena di archi. Invece rev appartenenti allo stesso
1
43
2
5 { Superci di separazione
la superficie definita da un sottoinsieme
e’ interna alla struttura creata
Archi rossi connettono solo
revs appartenenti a sottoinsiemi
differenti
Superficie equipotenziale
Figura 5.5.
sottoinsieme possono essere connessi o da una relazione di vicinato, o da una corda
rossa. Le superci denite da T e T sono parte integrante della struttura creata
(gura 5.6)
1
2
5.3 Come stabilire il tipo delle superci di separazione
Prendiamo un qualunque rev A appartenente ad un sottoinsieme Ti che sia anche un
estremo di una corda rossa; chiamiamo B l'estremo opposto della stessa corda. Supponiamo che B appartenga ad un sottoinsieme Tj di T ; questa condizione potrebbe
non essere vericata se i sottoinsiemi di partenza di T non sono corretti: infatti durante il processo di allargamento, alcuni vertici possono rimanere isolati (cioe avere
connessioni con altri vertici solo attraverso corde rosse) e quindi non appartenere a
nessun sottoinsieme di T . Nel caso il vertice B sia isolato, basta prendere, se esiste,
un'altra corda rossa che abbia come estremo A, oppure cambiare vertice di partenza.
Come spiegato in precedenza, dal momento che A e B sono connessi da una corda
rossa ed entrambi appartengono ad un sottoinsieme di T , nel caso di una rottura A e
44
5 { Superci di separazione
superficie equipotenziale
due revs appartenenti a sottoinsiemi
Le superfici definite dai sottoinsiemi
diversi non hanno una connessione diretta
di T fanno parte della struttura creata
Figura 5.6.
B appartengono a due sottoinsiemi dierenti, cioe i 6= j , mentre nel caso di un buco
A e B appartengono allo stesso sottoinsieme (i = j ). In questo modo un semplice
controllo sul sottoinsieme di appartenenza di due vertici ci permette di stabilire il
tipo del punto critico, il tipo della supercie di separazione denita dal sottoinsieme
Ti e quindi la modalita con cui andra ricostruita la struttura.
Il metodo implementato e leggermente diverso: invece di dividere T in sottoinsiemi e poi stabilirne il tipo, assegniamo un tipo al sottoinsieme mentre lo costruiamo.
Preso un arco rosso e chiamati A e B i suoi estremi (assicurandosi che nessuno dei
due sia isolato) possiamo visitare i vicini di B . Eseguiamo un ciclo tra i rev del
sottoinsieme partendo da B ; siano P ;P ::::Pj ;:::B i vertici visitati. Se uno dei Pi e
A, allora A e B appartengono allo stesso sottoinsieme di T (per denizione, relazioni
di vicinato possono esistere solo tra elementi dello stesso sottoinsieme) e il tipo della
supercie di separazione e un buco. Se invece non incontriamo A, allora A e B
appartengono a due sottoinsiemi diversi, che deniscono le superci di separazione
di una rottura.
0
1
45
6
Come ricostruire una struttura
corretta
Nel capitolo precedente abbiamo visto come isolare la parte della struttura che deve
essere rimossa, come creare un insieme di vertici chiamati rev e come dividerlo in
sottoinsiemi costituenti i bordi delle superci di separazione della struttura. Abbiamo anche individuato come riconoscere, partendo da tali sottoinsiemi, il tipo di
singolarita che si presenta nella supercie.
Dobbiamo ora analizzare come e possibile riadattare la tassellatura generata al
comportamento reale della struttura, osservando in principio il caso piu semplice
in cui la distribuzione delle cariche genera un solo punto critico al suo interno, e
successivamente il caso generale.
6.1 Distribuzioni con un solo punto critico
Avendo stabilito il tipo delle superci di separazione, sappiamo in che modo dobbiamo agire per avere una struttura che rispecchi fedelmente le proprieta della supercie. Prima di eettuare questa operazione, pero, e necessario rimuovere tutti i
triangoli marcati come rossi, le corde rosse e tutti i vertici isolati generati durante
il processo di allargamento dell'insieme T . Questi ultimi sono collegati con altri
vertici solamente attraverso corde rosse, e sono quindi attorniati solo da triangoli
marcati che verranno eliminati nel corso del processo di rimozione. Tali vertici, pur
appartenendo a T , non appartengono a nessun sottoinsieme di T . Devono inoltre
essere eliminati tutti i riferimenti a corde, triangoli e vertici obsoleti .
Quello che otteniamo alla ne del processo e una struttura aperta che deve essere
chiusa a partire dalle superci di separazione denite dai sottoinsiemi di T .
46
6 { Come ricostruire una struttura corretta
6.1.1 Il piano separatore
Per il processo di ricostruzione della struttura e necessario conoscere l'equazione del
piano di separazione tra le superci denite dai sottoinsiemi di T . Questo risulta
abbastanza semplice per le considerazioni fatte nel paragrafo x4.2, in quanto ad ogni
punto critico abbiamo associato gli assi di simmetria della supercie nei dintorni del
punto critico. Riferendosi alle gure 4.1.a-b, il piano separatore e denita dall'autovettore corrispondente all'autovalore avente un segno diverso dagli altri (nell'esempio
citato, il piano separatore e per entrambe le congurazioni il piano z = 0).
6.1.2 Ricostruire una rottura
Ogni sottoinsieme rappresenta il conne di una struttura aperta che deve essere
chiusa con una calotta. I rev appartenenti a un sottoinsieme devono quindi essere
connessi solamente con rev appartenenti allo stesso sottoinsieme, oppure con nuovi
vertici generati, che pero costituiscano globalmente una regione chiusa.
Il metodo piu semplice per eettuare questa operazione e quello seguente:
1. calcolare il centro del sottoinsieme (Ci =
vj
vj 2Ti n
P
dove n = jTi j )
2. spostarlo sulla supercie equipotenziale iterando (2.3)
3. unire tutti i rev del sottoinsieme con Ci .
Ci
Ti
Figura 6.1.
47
6 { Come ricostruire una struttura corretta
Il risultato di questa operazione e mostrato in gura 6.1; il vantaggio di questo
metodo e che viene generato un numero ridotto di triangoli. Infatti se la dimensione
del sottoinsieme e n vengono generati n nuovi triangoli e 1 nuovo vertice. Creare il
minimo numero di triangoli possibile non e in genere una buona soluzione; infatti
buona parte delle nuove corde introdotte risulta non essere accettabile. In questo
modo invece ci si assicura che il punto Ci si trovi sulla supercie equipotenziale e che
le nuove corde introdotte siano piu verosimilmente accettabili. Il grosso svantaggio
e invece che il centro del sottoinsiemi risulti avere almeno n vicini. Questo fatto puo
rivelarsi negativo per l'applicazione di alcune tecniche di post-processing quando n
diventa elevato.
Si consideri ad esempio la tecnica del rilassamento. Essa consiste inizialmente
nell'applicare ad un vertice un vettore di spostamento, determinato come la dierenza di posizione tra il vertice stesso il centroide dei suoi vicini, e quindi nel muovere
la nuova posizione ottenuta sulla supercie; il centroide e il centro dell'insieme formato dai vicini del vertice in questione considerato come un poligono a n lati. Per
tutti i vertici della supercie vengono calcolati i vettori di spostamento ideali, e
successivamente vengono aggiunti (interamente o solo in parte) ai vertici originari.
Lo scopo di questa tecnica e quello di far assumere ai vertici una distribuzione
il piu uniforme possibile sulla supercie. Applicata al vertice Ci non ne cambia la
posizione in quanto tale vertice e stato costruito proprio come centro dell'insieme
formato dai suoi vicini. Inoltre l'aspetto della supercie attorno al vertice creato
lascia molto a desiderare, perche la supercie forma una punta.
Per ovviare a questo problema e per introdurre un'insieme di corde che segua
piu dolcemente il prolo della supercie si puo procedere nel modo seguente: il
centro del sottoinsieme viene calcolato come nel caso precedente, ma ora tra Ci e il
sottoinsieme stesso viene creato uno strato intermedio di vertici. La dimensione di
questo livello intermedio deve essere tale che, alla ne del processo di connessione, i
suoi componenti e il centro del sottoinsieme abbiano all'incirca lo stesso numero di
vicini. Questo passo puo essere cosi sintetizzato:
1. Stabilire un numero d'ordine per i rev appartenenti al sottoinsieme Ti (ad esempio
si prenda un qualsiasi rev del sottoinsieme e gli si assegni l'indice 0, si scelga poi
un verso di percorrenza, orario o antiorario, e si assegni un indice crescente ad
ogni nuovo rev incontrato no al raggiungimento del vertice di partenza). Sia
L l'insieme composto dai vertici appartenete al livello intermedio da costruire.
Inizialmente L e vuoto.
2. per ogni rev del sottoinsieme avente un indice multiplo di
jq
k
jTij
calcolare il punto medio del segmento che unisce il vertice e Ci ; sia v il nuovo
vertice creato (oppure sia v il punto medio parametrico della curva di Bezier
48
6 { Come ricostruire una struttura corretta
passante per il vertice e per Ci e ivi tangente alle rispettive normali).
spostare v sulla supercie e aggiungerlo a L.
Per unire Ti e L si puo seguire il procedimento che verra utilizzato nel paragrafo x6.1.3, mentre Ci puo essere collegato con tutti i vertici di L.
Figura 6.2.
l
jq
km
Se poniamo n = jTij e m = n= jTij , vengono creati m + 1 vertici e n + 2m
triangoli. Il centro del sottoinsieme avra m vicini mentre ogni vertice del livello
intermedio ne avra, in media, m +3. In gura 6.2 si puo vedere il risultato ottenibile
in un caso molto semplice in cui jTij = 6 e m = 3.
6.1.3 Ricostruire un buco
In questo caso il problema e piu complicato. La parte di supercie che deve essere
costruita e una "striscia" compresa tra i due sottoinsiemi di T ; per costruirla, i rev
di un sottoinsieme devono essere connessi solamente con rev dell'altro sottoinsieme,
e gli archi di connessione non devono attraversare il buco. In termini matematici,
questo signica che gli estremi A e B della corda devono appartenere alla stessa
regione denita dal piano perpendicolare alla proiezione del vettore A , C (dove
C e il punto critico) sul piano separatore; in altri termini il prodotto scalare tra le
49
6 { Come ricostruire una struttura corretta
A
C
B
Figura 6.3.
proiezioni sul piano separatore dei vettori A , C e B , C non deve essere minore di
zero (gura 6.3).
Innanzitutto, bisogna prendere due vertici di partenza dai due sottoinsiemi; siano
v 2 T e v 2 T i due vertici aventi la minima distanza tra di loro. Per il processo
di triangolarizzazione del nastro occorrono ora due distanze d e d :
1
1
2
2
1
2
d =distanza tra v e v (dove v e il vicino di v in senso orario)
d =distanza tra v e v (dove v e il vicino di v in senso orario).
1
1
+
2
+
2
2
2
2
+
1
+
1
1
L'arco corrispondente alla distanza minore e ripetutamente aggiunta alla struttura di connessione, no a quando il nastro triangolare non e chiuso. Se i sottoinsiemi
di partenza hanno jT j + jT j = n otteniamo n nuovi triangoli (gura 6.4).
1
2
6.2 Distribuzioni con piu punti critici
La soluzione discussa nel paragrafo x6.1 funziona bene nei casi semplici ma non
permette assolutamente di trattare topologie piu complicate. Non e dicile, infatti, costruire delle distribuzioni di cariche in cui compaia un numero di singolarita
arbitrario, nonche casi in cui piu punti critici abbiano lo stesso potenziale. Quattro
cariche equivalenti poste nei vertici di un quadrato, ad esempio, generano quattro
singolarita equipotenziali sui lati del quadrato e una quinta nel centro dello stesso.
Bisogna quindi denire nuovi attributi da associare ai punti critici e ai sottoinsiemi di T che permettano al processo di ricostruzione della struttura di essere il piu
generale possibile.
50
6 { Come ricostruire una struttura corretta
T1
T2
Figura 6.4. jT1j = 5;jT2j = 4; la striscia e composta da 9 triangoli
6.2.1 Alcune denizioni
Prima di spiegare come sia possibile trattare distribuzioni piu complesse, e opportuno introdurre alcune denizioni che saranno necessarie in seguito.
Denizione 6.1 Un punto critico si dice attivo quando il valore della supercie
equipotenziale V0 corrisponde al potenziale del punto critico stesso, cioe (per quanto
spiegato in x4.3) V0 = Vc + c, dove Vc e il valore critico.
I punti critici possono, quindi, non essere tutti attivi allo stesso istante. In piu,
data l'introduzione da parte della distribuzione di cariche di un numero arbitrario di
punti critici, l'insieme T risulta essere diviso in un numero arbitrario di sottoinsiemi.
Inoltre in precedenza la singolarita presente era unica e tali sottoinsiemi si riferivano
implicitamente ad essa; ora e necessario che ogni sottoinsieme abbia un esplicito
riferimento ad un punto critico.
Denizione 6.2 Un sottoinsieme Ti di T e un punto critico Pj sono collegati se Pj
e il punto appartenente all`insieme dei punti critici introdotti dalla distribuzione di
cariche che ha la distanza minore dal centro del sottoinsieme.
51
6 { Come ricostruire una struttura corretta
A questo punto occorre fare una precisazione. A causa di approssimazioni di
calcolo, i vertici non giacciono mai esattamente sulla supercie equipotenziale; questo puo introdurre perturbazioni nel processo di marcatura delle corde che possono
portare a marcare come rosse delle corde che appartengono ancora alla supercie,
generando dei sottoinsiemi di T corretti ma che non devono essere rimossi dalla
struttura. Un arco marcato come rosso introduce infatti un sottoinsieme corretto
composto da 4 rev (i vertici dei due triangoli adiacenti alla corda). Questa possibilita
puo vericarsi nei casi in cui due singolarita, in regioni diverse della spazio, abbiano
un potenziale molto simile: anche nel caso in cui la marcatura relativa a quella a
potenziale maggiore sia corretta, abbiamo inserito un apposito valore di potenziale
in cui deve essere analizzata. Bisogna quindi che anche i sottoinsiemi di T abbiano
un attributo di attivazione:
Denizione 6.3 Un sottoinsieme Ti di T e attivo al potenziale V se lo e il punto
0
critico Pj a cui Ti e collegato.
Un altro problema, e quello di collegare tra loro le due superci di separazione
relative ad un buco. Infatti, mentre i sottoinsiemi corrispondenti a delle rotture possono essere connessi singolarmente, quelli corrispondenti ad un buco devono essere
accoppiati. Due sottoinsiemi deniscono le superci di separazione di un buco se sono collegate allo stesso punto critico e il prodotto scalare tra i vettori che connettono
il punto critico e i centri dei due sottoinsiemi e minore di zero.
6.2.2 Ricostruire l'intera struttura
Prima di tutto abbiamo bisogno delle seguenti strutture dati:
una lista dei valori di potenziale per la costruzione della supercie equipoten-
ziale nale;
una lista (inizialmente vuota) che conterra gli eventuali punti critici deniti
dalla distribuzione di cariche;
una lista contenente gli elementi di T ;
una lista di elementi contenenti le caratteristiche dei sottoinsiemi di T ;
L'insieme dei punti critici viene aggiornato dall'applicazione del metodo di NewtonRaphson. Una volta che tale metodo converge dobbiamo:
calcolare gli assi di simmetria della supercie corrispondente al valore critico;
52
6 { Come ricostruire una struttura corretta
inserire i dati relativi al punto critico nella tabella relativa;
modicare l'insieme dei valori di potenziale.
Quando viene raggiunto un punto critico occorre:
costruire l'insieme T ;
dividerlo in sottoinsiemi;
collegare ogni sottoinsieme ad un punto critico;
stabilire l'attributo di attivazione per ogni sottoinsieme;
collegare tra di loro i sottoinsiemi relativi a dei buchi;
eliminare i triangoli e le corde rosse aventi un estremo appartenente ad un
sottoinsieme attivo, e tutti i vertici isolati connessi attraverso un arco rosso
ad un sottoinsieme attivo;
per tutti i sottoinsiemi attivi, ricostruire la struttura a seconda del loro tipo
come spiegato nei paragra x6.1.2 e x6.1.3.
53
7
L'algoritmo modicato
Dopo aver introdotto i concetti di corde rosse, triangoli rossi, rev, siamo ora in
grado di scrivere l'algoritmo completo. Questo verra presentato nel paragrafo x7.1;
nel paragrafo x7.2 verranno presentati i risultati ottenibili con il nuovo algoritmo
comparati con quelli della precedente versione.
7.1 Il nuovo algoritmo
Riprendendo la notazione introdotta nel paragrafo x2.6, i vertici sono deniti come
quadruple (r;E;V;d) 2 R R R R ); l'attributo r e la posizione; E e il
gradiente rf (r); V e il valore del potenziale f (r), e d e il vettore di spostamento
che deve essere applicato a questo vertice. P e l'insieme dei valori di potenziale;
la funzione next estrae da P il prossimo passo da valutare. Ogni suo componente
ha come attributi (V;cp), dove V e il valore di potenziale e cp specica se il valore
e collegato ad un punto critico. T e l'insieme dei rev e i sottoinsiemi sono deniti
come tuple (t;a;lc) dove t e il tipo del sottoinsieme, a e l'attributo di attivazione e
lc e un riferimento alla lista collegata nel caso il tipo sia un buco. L'insieme C e
l'insieme contenente i punti critici; questi sono deniti come vertici ma hanno in piu
un riferimento ad una matrice M contenente i versori degli assi di simmetria della
supercie nell'intorno del punto critico stesso.
La funzione insert provvede ad inserire un elemento nell'insieme specicato. Nel
caso tale insieme sia P , insert provvede anche a modicarne gli altri elementi. Come
specicato nel paragrafo x4.3, inserendo un valore v:V dobbiamo eliminare tutti i
valori presenti in un intervallo denito di v:V aventi attributo cp = 0, ponendone
uno al limite inferiore di tale intervallo. Questo elemento puo essere ottenuto aumentando leggermente il potenziale di un elemento gia presente o, se questo non e
possibile, inserendone uno nuovo.
3
3
3
54
7 { L'algoritmo modicato
La dierenza di potenziale tra una supercie e la successiva e inizialmente denita
come una frazione del potenziale nale V (con V = 1), ad esempio V n10; se la
distribuzione delle cariche introduce dei punti critici questa dierenza puo variare.
Inizialmente P contiene tutti i valori frazionari deniti di V .
Nuovamente l'insieme di vertici di partenza e costituito dai vertici dell'oggetto
iniziale (un tetraedro o un ottaedro); si assume che sia sucientemente grande da
essere esterno alla intera supercie equipotenziale anche per il valore iniziale 1n10.
Tutti i vertici v hanno inizialmente v:V = 0, v:E punta radialmente verso l'interno,
e v:d = v:E=v:E v:E .
0
0
0
0
begin
end;
P=insieme dei passi di potenziale iniziali;
f inizialmente tutti i componenti di P hanno l'attributo cp=0 g
V0:=0;
while P6= f;g
begin
V0:=next(P);
S1;
f tutti i vertici sono sulla supercie; per ogni vertice v abbiamo
v.V=V(v.r)
v.E=grad V(v.r)
v.d=(V0-v.V)*v.E=v.E v.Eg
S2;
f tutti i vertici sono sulla supercie; per ogni vertice v abbiamo
v.V=V(v.r)
v.E=grad V(v.r)
v.d=(V0-v.V)*v.E=v.E v.E
tutte le corde sono accettabilig
S3;
f eventuali punti critici in vicinanza dei vertici della supercie
sono stati trovati; l'insieme P e' stato modicato g
if V0.cp=1 then S4;
f tutte le corde e i triangoli della struttura sono
coerenti con la supercie da approssimare g
end;
f tutti i vertici sono sulla supercie;
tutte le corde sono accettabili e V0=1.0g
dove S1 e:
55
7 { L'algoritmo modicato
for tutti i vertici v do
repeat
v.r:=v.r+v.d;
v.V:=V(v.r);
v.E:=grad V(v.r);
v.d:=(V0-v.V)*v.E=v.E v.E;
until jv.dj <Epsilon;
e S2 e:
azzerare l'etichetta di tutti i triangoli
for tutte le corde c do
begin
c.n := "c non e' accettabile"
f per decidere l'accettabilita' o meno di una corda, usare e1.E e e2.E
come direzioni delle normali in e1.r e e2.r per gli estremi e1 ed e2 della corda g
end;
while ci sono corde non accettabili do
begin
for tutte le corde c con c.n := true do
begin
creare un nuovo vertice w per la corda c, come spiegato in x2.5;
spostare w sulla supercie come in S1;
etichettare i due triangoli adiacenti ad e;
creare due nuove corde per i frammenti di c, c1 e c2;
c1.n := "c1 non e' accettabile"
c2.n := "c2 non e' accettabile"
rimuovere la corda c;
end;
f tutte le corde inizialmente non accettabili
sono state divise, ma nuove corde non accettabili possono essere state create g
for tutti i triangoli etichettati t do
begin
dividere t come spiegato nella sezione x2.5;
creare 2,3 o 4 nuovi triangoli;
for tutte le nuove corde generate ci do ci.n := "ci non e' accettabile";
rimuovere il triangolo t;
f tutti i triangoli delimitati inizialmente da corde non accettabili sono stati divisi,
ma nuove corde non accettabili possono essere state generate g
end;
56
7 { L'algoritmo modicato
end;
come nel paragrafo 2.6. S3 e:
calcolare la soglia n ;
for tutti i vertici v con jv.Ej < n do
begin
applicare Newton-Raphson a x0=v;
if il metodo converge then
begin
b=xn;
f b ha gli stessi attributi di un vertice g
if b non e' presente in C then
begin
insert(b.V+c,P);
f l'insieme P e' stato modicato g
associare a b gli assi di simmetria della supercie nel suo intorno;
insert(b,C);
end;
else if b.cp=0 then b.cp=1;
end;
end;
e inne S4 provvede a ricostruire la struttura:
marcare le corde della struttura;
costruire l'insieme T ;
dividere T in sottoinsiemi;
for tutti i sottoinsiemi Q di T do
begin
Q.a="il sottoinsieme e' attivo"
Q.t="tipo del sottoinsieme"
for tutti i sottoinsiemi S attivi do
begin
if Q.t=rottura then ricostruisci rottura(Q);
if Q.t=buco then
begin
Q1=Q.lc;
ricostruisci buco(Q,Q1);
57
7 { L'algoritmo modicato
end;
end;
Q1.a=0;
7.2 Analisi dei risultati
Un'analisi quantitativa del sovraccarico introdotto dalle nuove caratteristiche non
e semplice, in quanto non puo essere eettuato nessun confronto sulle stesse distribuzioni di cariche in ingresso rispetto al vecchio Shrinkwrap; o,per essere piu
precisi, distribuzioni non contenenti punti critici possono essere confrontate, ma il
costo introdotto dal processo di marcatura e di ricostruzione della struttura e una
peculiarita della nuova versione dell'algoritmo. Dobbiamo quindi accontentarci di
calcolare l'aumento medio in termini di IFEPT (Implicit Functions Evaluated Per
Triangle), anche se i risultati non sono ancora del tutto confrontabili, in quanto il
numero di IFEPT dipende anche dal numero di passi utilizzati per raggiungere la
supercie nale; a causa della presenza di punti critici e quindi della necessita di
cambiare tale insieme di valori e spesso di aumentarne la dimensione, il numero di
passi utilizzato per calcolare i dati presenti in tabella 7.1 e in genere 9, contro i 7
(il numero ottimo) utilizzati in [Overveld 93]. Per comparare i risultati possiamo
rapportare i dati ottenuti al numero di passi ottimo.
Il sovraccarico in termini computazionali e principalmente dovuto alle iterazioni
del metodo di Newton-Raphson. E' possibile calcolare tale sovraccarico ricalcolando
i costi totali evitando di applicare tale processo; registrando su un le tutti i dati
relativi ai punti critici generati dalla distribuzione di cariche, il processo di costruzione della supercie equipotenziale nale puo essere applicato una seconda volta
disponendo in partenza di tutti i dati necessari. Nella tabella 7.1 sono presentati i
risultati completi. Nella prima colonna vi e il nome simbolico associato all'insieme
di cariche, mentre nella seconda colonna e rappresentato il numero nale di triangoli
che compongono la struttura approssimante. La parte restante della tabella e divisa
in due parti: la prima conteggia il numero totale di funzioni implicite calcolate,
mentre la seconda non considera il costo aggiuntivo dovuto al metodo di NewtonRaphson. Inne nell'ultima colonna vi e la dierenza in percentuale tra i valori di
IFEPT calcolati nei due casi.
Per quanto riguarda le istanze utilizzate per estrarre i risultati presentati, esse
generano quasi tutte un solo punto critico, tranne 4points che e costituita da 4 cariche
equivalenti posizionate sui lati di un quadrato e 1line-2points contenente una linea e
due cariche puntiformi di carica diversa e posizionate asimmetricamente nello spazio.
La prima istanza genera un punto critico nel centro del quadrato e, ad un potenziale
58
7 { L'algoritmo modicato
Istanza
Triangoli Newt.on IFEPT Newt.o IFEPT Dierenza
4lines
746
7668 10.28
6582
8.82 -14.20 %
1torus
458
5230 11.42
4475
9.77 -14.44 %
4points
2366
43618 18.44
32035 13.54 -26.57 %
2triangles
640
11875 18.55
8107 12.67 -32.80 %
2points
1204
26152 21.72
16679 13.85 -36.22 %
1line-1point
606
14267 23.54
6969 11.50 -48.85 %
Tabella 7.1.
maggiore, quattro punti critici equipotenziali sui lati del triangolo mentre la seconda
genera due punti critici a potenziali diversi, ed e stata utilizzata per ricavare dei
sottoinsiemi di rev non corretti. Alcune di queste istanze sono rappresentate nelle
tavole a colori in appendice (1torus: tavole E.1-7; 2points: tavole D.1-6).
Calcolando il risultato medio ottenibile con la precedente versione di Shrinkwrap si ricava che, nel caso ottimo, IFEPT ' 8:31. Applicando un numero
di iterazioni pari a quelle utilizzate per ricavare i dati della tabella 7.1, si ottiene IFEPT ' 9:86, cioe un peggioramento di circa il 18.7%. Ora otteniamo
IFEPT ' 17:32 (+108.42%) e IFEPT ' 11:69 (+40.67%) senza considerare
il costo dovuto al metodo di Newton-Raphson. Ricalcolando i risultati in termini di numero ottimo di passi ottimo si ottiene rispettivamente IFEPT ' 14:55
(+75.08%) e IFEPT ' 9:85 (+18.52%) e 14.55.
Come si puo notare dall'analisi dei risultati, il numero di computazioni dovute
al metodo di Newton-Raphson penalizza notevolmente le prestazioni. Tale numero
dipende principalmente dalla dimensione dell'insieme S di vertici di partenza. Riducendo tale dimensione, si riduce anche, di conseguenza, il sovraccarico generato. La
soluzione implementata e forse costosa, ma ha il vantaggio di essere molto robusta,
nel senso che riesce a trattare tutte le congurazioni in ingresso indipendentemente
dalla loro complessita.
Al contrario, i processi di marcatura delle corde e di ricostruzione della struttura inuiscono in modo minore sul costo totale nale anche quando devono essere
applicati piu volte (ad esempio si vedano nella tabella i casi delle istanze 4points e
1line-2points).
7.3 Conclusioni
L'algoritmo presentato nel capitolo 7.1 permette di generare una struttura poligonale che approssimi una supercie implicita. Tale processo, noto con il termine
di poligonizzazione, permette di ovviare ad alcuni degli inconvenienti riscontrabili
59
7 { L'algoritmo modicato
nell'utilizzo di superci implicite; tale approssimazione, ad esempio, ne semplica il
problema della visualizzazione, permettendo di ombreggiarla rapidamente e di avere
viste da posizioni arbitrarie senza dover risolvere ogni volta la funzione che la denisce. Le superci in esame sono superci di livello di un campo scalare, denito da
un insieme di elementi di base, che costituiscono lo "scheletro" della supercie.
La tassellatura della supercie viene costruita a passi attraverso potenziali via via
crescenti no a raggiungere la supercie nale, adattandola ad ogni passo alla supercie intermedia. La struttura triangolare risultante e adattativa al comportamento
locale della supercie piuttosto che essere imposta a priori da una suddivisione dello
spazio, nel senso che la lunghezza dei lati dei triangoli componenti la struttura varia
secondo la curvatura locale della supercie sottostante. In questo modo superci
relativamente piatte daranno luogo ad una tassellatura costituita da triangoli piu
grandi e, generalmente, equilateri, mentre superci con una curvatura piu elevata
genereranno triangoli piu sottili e di dimensioni minori.
Se la distribuzione di cariche introduce singolarita nel campo, le superci possono andare incontro a cambiamenti geometrici e topologici, o scindendosi in piu
superci separate o incrementando il proprio ordine di connessione; occorre quindi
modicare la struttura generata dall'algoritmo (che inizialmente e una singola supercie chiusa semplicemente connessa) perche assuma le stesse caratteristiche della
supercie equipotenziale.
Abbiamo visto un semplice metodo che ci permette di conoscere l'esatta posizione
dei punti critici presenti; conoscendone la posizione, possiamo calcolarne il potenziale
e, portando dolcemente la struttura creata al valore del punto critico, isolare gli
insiemi di corde e triangoli che non sono piu coerenti con la supercie, rimuoverli
e ricostruire nuovi insiemi corretti. In questo modo ogni supercie equipotenziale
nale diventa triangolarizzabile a partire da una struttura iniziale molto semplice.
La struttura nale ore diversi vantaggi, che possono essere riassunti come segue:
la struttura e adattativa al comportamento locale della supercie;
le normali nei vertici sono calcolate come sottoprodotto del metodo di ricerca
e non comportano quindi la necessita di ulteriori e piu pesanti computazioni;
la struttura creata puo essere facilmente equipaggiata con un proprio sistema
di coordinate;
la supercie equipotenziale nale non deve godere di particolari proprieta.
Uno svantaggio delle nuove caratteristiche introdotte e che determinano una
riduzione dell'ecienza in termini di IFEPT. L'algoritmo e stato implementato in
C in ambiente XGL su una workstation Sun Sparc 10 dotata di hardware graco.
60
7 { L'algoritmo modicato
Le tavole a colori presentate sono state generate per mezzo di due diversi tools
di shading, Polygons e Viper, progettati e realizzati da Kees van Overveld in
collaborazione con alcuni studenti della Technische Universiteit Eindhoven.
7.4 Ulteriori sviluppi della ricerca
Uno dei punti che la corrente implementazione non e ancora in grado di trattare
e rappresentato dalla possibilita di avere un buco con piu di due superci di separazione. Come per il relativo caso di una rottura, non e complicato denire un
insieme di primitive che determini tale situazione. Tuttavia, anche se non si e ritenuto necessario ampliare il presente lavoro, e abbastanza facile fronteggiare questa
evenienza disponendo delle strutture dati presentate. Stabilito quindi che si possa
presentare questa situazione, e suciente inserire i relativi riferimenti negli elementi
gia presenti. Il problema piu signicativo e quello di ricostruire la struttura correttamente; a questo proposito ci viene in aiuto un articolo, [Bink 94], che tratta della
ricostruzione di superci tridimensionali (anch'esse denibili come superci implicite) attraverso informazioni volumetriche. Questo e un problema di grande interesse
sopratutto in campo medico, dove si cerca di ricostruire la struttura di organi o
di ossa a partire da una serie di campioni derivanti da analisi (raggi X, TAC, ...).
Uno dei casi trattati in questo articolo riguarda proprio il problema di collegare tra
loro piu "contorni" (cioe quelle che in questa tesi sono state indicate come superci
di separazione) in modo da costruire una supercie unica; la soluzione proposta e
facilmente adattabile all'algoritmo Shrinkwrap.
Un grosso miglioramento delle prestazioni e delle potenzialita dell'algoritmo sara
ottenibile quando tutto il programma, correntemente implementato in C, sara convertito in C++ per entrare a far parte di un sistema graco ad oggetti chiamato
GBOB (Graphics Box Of Bricks) sviluppato dai ricercatori del Technische Toepassingen Group dell'universita di Eindhoven.
In questo sistema una supercie o un insieme di superci sono denite come
un unico oggetto su cui e possibile applicare una serie di metodi, alcuni dei quali
permettono di "ranare" la struttura triangolare eliminando triangoli non necessari.
Nel processo di contrazione puo infatti vericarsi che in alcune regioni,dove cioe si e
vericato un buco o una rottura, la curvatura diminuisca; l'insieme di triangoli che
deniscono tale regione puo quindi essere ridotto ad un nuovo insieme di dimensioni
minori, pur mantenendo una struttura corretta e accettabile. In queste modo la
struttura nale e piu semplice e ne risulta anche piu rapida l'elaborazione.
Inoltre, diverse applicazioni possono interagire sullo stesso oggetto, permettendo
eventualmente di utilizzare Shinkwrap in maniera piu essibile all'interno di questo
sistema.
61
Appendice A
How to shrinkwrap a saddle point
A.1 Introduction
Equi-potential surfaces are an important class of implicit surfaces. They play a
signicant role in computer visualization and several of the surfaces that are of
interest in pure mathematics, physics, or chemistry are equi-potential surfaces.
In order to visualize equi-potential surfaces, ray tracing is a reasonable technique,
although it is an arduous task to compute points on the equi-potential surface, which
often imposes restraints on its application.
An alternative to ray tracing is the conversion of the surface into a polygonal
mesh, that can be rendered afterwards and that oers other inherent advantages
(such as fast viewing from arbitrary directions and applications of post-processing
techniques).
In [Overveld 93] an algorithm is presented (referred to as Shrinkwrap) for polygonizing an iso-potential surface dened by a set of skeletal elements. The algorithm
generates a triangular mesh that is adaptive to the local behaviour of the surface,
in the sense that the lengths of the sides of the triangles in the mesh vary with the
local curvature of the underlying surface. A disadvantage of this algorithm is that
it can only cope with a single closed surface without holes. This means that any
nal conguration made up of more separate surfaces cannot be tesselated by the
algorithm, and as well any conguration containing holes (e.g. the case of a torus).
The Shrinkwrap algorithm has been implemented in a program called Wsoid by
Kees van Overveld and the Computer Graphics Group of the Eindhoven University
of Technology. This paper presents a possible solution to the problem of dealing
with the change in topology occurring in the critical points of the potential eld.
In the following sections we explain what is a critical point, how to detect critical
points in the space and how reshape the structure created in order to keep an
62
A { How to shrinkwrap a saddle point
acceptable surface and an acceptable triangular mesh (please refer to [Overveld 93]
for all the denitions of chord, acceptable chord, acceptable triangle and acceptable
surface).
In the Appendix, some general assumption are specied and some informations
about the implementation are given.
63
A { How to shrinkwrap a saddle point
A.2 Critical points
A critical point P , or singular point, of an implicit function in three variables, as
the case of the scalar potential eld we're dealing with, is a point with the following
characteristics:
0
the gradient of the potential eld in the point is zero. That means:
rf (P ) = 0
0
(A.1)
det(JP0 ) 6= 0
(A.2)
where J is the Jacobian of rf .
one set of eld lines intersect at the singular point, but equipotential surfaces
and eld lines do not intersect at a right angle. ([Artley 65]).
z
+
z
ρ
y
y
+
ρ
Equipotential surfaces
(a)
Flow lines direction
(b)
Figura A.1. Equipotential surfaces and ow lines on the yz plane for two equivalent point sources.
Figure A.1a indicates the manner in which equipotential surfaces appear in the
yz plane for two equal point sources. One set of equipotential lines intersects at
the origin. The ow or direction lines of the eld are indicated in gure A.1b. The
diagram in gures A.1 depict the eld in one plane. The three-dimensional eld can
be visualized by rotating the individual diagram in gure A.1 about their respective
64
A { How to shrinkwrap a saddle point
z axes. The set of ow lines which meet at the singular point leave the singular
point to form a plane sheet of ow in the z = 0 plane in three dimension.
An iso-potential surface at a value of the critical point is in a limit situation.
When the iso-value changes, the iso-surface in the vicinity of a critical point changes
topologically and geometrically. What can happen to the surface is that it can split
into two new surfaces (as in the case of two charges) or it can increase the order of
connectivity (as in the case of a torus).
A.2.1 How the region around a critical point behaves
Equation A.1 can be used to characterize a region of the space close to a critical
point. Since the eld is dened as:
X
f (r) = jr ,iR j
(A.3)
i
i
the potential function has a continuous derivative. This means that in a region
of space close enough to P , the gradient length is approaching zero. From this
observation, we can derive a method to nd the position of the critical points in the
eld.
We can consider a set of points of the iso-potential surface with the characteristic
of having a gradient length locally minimal.
0
Denition A.2.1 For a given n, S is the set of vertices v of the polygonal mesh
with jrfv j < n
This set can be made arbitrarely large by choosing a greater value of , and its
elements can be taken as starting points for a Newton-Raphson method to nd the
critical points. This method gives a very ecient means of converging to a root, if
there is a suciently good initial guess. It can also spectacularly fail to converge,
indicating (though not proving) that no root exists nearby. The set S as dened
before can be considered as a good initial guess. Newton-Raphson method tries to
reach the roots of an equation by adjusting the argument, iterating the following
formula:
xn = xn , rf (xn) J ,
+1
(A.4)
1
(see [Mizr 82] and [Press 86-1])
where J is the Jacobian of rf and x 2 S . This process is stopped when we
reach a point xn that satises rf (xn) = 0 within oating point accuracy, or when
0
65
A { How to shrinkwrap a saddle point
the process itself diverges. The results we can obtain with this method are rather
precise; in fact, if dierent points on the surface converge to the same critical point,
the dierences in the value of potential and in position of this points are close to
0.01%.
Evaluating the eigenvectors of the Jacobian in the critical point, we can introduce
there a basis of perpendicular vectors (the vectors perpendicular to the planes of
symmetry of the iso-surface in the region around the critical point). They allow us
to nd a cutting plane, that is the separating plane between the splitting surfaces
generated by the critical point ([Press 86-2]). The denition of this plane is essential
for the process of xing the topology (see xA.4.2).
If we expand the potential function around a critical point c the linear terms are
zeroed; we obtain:
XX @ f
f (c + x) = f (c) + 12
@x @x xixj + h:o:t:
2
i
i
j
j
The matrix of the partial derivatives (J ) is the Jacobian of rf ; for the theorem
of Schwartz, J is real and symmetric; so, its eigenvectors and the corresponding
eigenvalues are real. Since c is a critical point, J (c) has both positive and negative
eigenvalues; furthermore, an orthogonal base of eigenvectors of J exists.
Now if we take c as origin and the eigenvectors of J as direction of the axes of a
new coordinate system x0, y0 and z0, we get
0
0
0
f (x0;y0;z0) = f (0) + xa + yb , zd
The surface f (x0;y0;z0) = f (0)+ intersects the plane z = 0 in an ellips (if > 0); the
plane z = 0 is tangent to the surface f (x0;y0;z0) = f (0), and the surface f (x0;y0;z0) =
f (0) is separated in two halves by the plane z = 0.
If the matrix J has two negative eigenvalues, we get
2
2
2
2
2
2
0
0
0
f (x0;y0;z0) = f (0) , xa , yb + zd
In this case the transition is from two halves into one surface.
The surfaces in the two dierent cases are shown in gure A.2. The positive and
negative values of the eigenvalues are such that the plane z = 0 is the cutting plane
for both congurations.
2
2
2
2
2
2
66
A { How to shrinkwrap a saddle point
z
z
O
y
y
x
x
(a)
(b)
Figura A.2.
A.3 The surface
As stated above, we can nd where a critical point is. Knowing its position in the
space, we can easily compute the value of the eld in this point.
This is important because knowing it, we can change the number and the value
of the iso-values that dene the intermediate surfaces, in order to have a smooth
approach to the point in which there will be a topological change in the surface.
The procedure followed is:
1. when the shrink wrap algorithm starts, the beginning and ending values of
the iso-value and the number of steps we have to iterate are given. A dynamically linked list is created to record the dierent iso-values of the approaching
method.
2. when an iso-potential surface has been created, we calculate the set S for a
suitable and apply the Newton method to the points belonging to it. If a
critical point is reached, rst of all we check if it corresponds to a critical point
we had already found. Otherwise we store information about it in a critical
point table, and we reorganize the list of the iso-values so to have a smooth
approach to the potential value of the critical point (for which the iso-potential
surface has to change its topological structure) and a smooth leave from it.
An iso-value entry immediately after the value of the critical point is inserted
too, and this entry is marked as related to a critical point. The reasons for
doing this are explained in xA.3.1.
3. when an entry is marked as being related to a critical point, what we have to
do is just change the topology in order to break the surface or to make a hole
in it (see section xA.4 and following).
67
A { How to shrinkwrap a saddle point
Let's look more carefully at what is happening to the surface and how the polygon
mesh created by the algorithm behaves when the potential value corresponds to a
critical point.
A.3.1 What is happening to the surface
As explained in xA.2.1, there is a substantial dierence of the topology between two
iso-potential surfaces immediately before and immediately after the critical point.
What we have to do now is to understand what is happening, and to act in such
a way to follow the events. This means making a ssure or a hole in the structure
and recreating a closed manifold with a correct topology. But how to do this?
Let's call for short critical value the value of the potential at the critical point.
According to xA.3, the list of the iso-values of the potential close to the critical
value (where Vc is the critical value and Vi is the entry related to the critical point)
is organized in this way:
Vi, = Vc , SECURITY V ALUE . The surface corresponding to Vi, is far
1
1
1
enough from the critical value and it doesn't have any peculiarity (g A.3).
Vi = Vc + c, where c is arbitrarely small but greater than zero. The surface
has already changed properties, but it is very close in the space to the critical
point (g A.4 shows the surface for Vi = Vc ).
Vi = Vc + SECURITY V ALUE . The surface is far from the critical point.
The security value allows the new topology to stabilize (g A.5).
+1
2
Since the shrink wrap algorithm moves vertices from one iso-potential surface
to the next, immediately after the critical value, there are some edges connecting
points belonging to the surface, but these edges are not properly part of the surface,
because the surface has "disappeared" beneath them (e.g consider the edge A , B
in g A.5). This behaviour is due to the high curvature of the isosurface in the
neighbourhood of the critical point. This curvature is much higher than the one
of the nal surface, althought outside this region the curvature is still less than ,
where is the value of the maximal curvature of the surface to tile; this is the reason
why these edges contradict lemma 3.
The surfaces drawn here in gures A.3 to A.5 are intersections of the iso-surface with a plane
passing through the critical point and parallel to the cutting plane normal. These surfaces are
irrespective to the kind of the critical point.
2 for further details see xA.4 and followings
1
68
A { How to shrinkwrap a saddle point
A
B
Figura A.3. Iso-potential surface for V0 < Vc
A
B
Figura A.4. Iso-potential surface for V0 = Vc
A
B
Figura A.5. Iso-potential surface for V0 > Vc
69
A { How to shrinkwrap a saddle point
Let's call these edges red edges . So the red edges set is the set composed by all
the edges of the structure surrounding the critical point after the critical value. In
the same way we can build a set composed by red triangles.
3
Denition A.3.1 A red triangle is a triangle of the mesh in which at least one of
its edges is red (see g A.6).
o
o
o
o
o
Red edge
Normal edge
o
Red triangle
Figura A.6.
A.3.2 How to detect red edges
What we need now is a mathematical condition to detect red edges. From lemma
4 in [Overveld 93, page 9] we know that, in the case of an acceptable chord, the
maximal relative deviation between a chord and its shadow is:
p
) , 3
E 1 +1cos(
, sin( )
(A.5)
2
2
where is a real-valued parameter that states the acceptability of a chord ( is
the maximal angle achievable between the gradients in the extremes of the chord to
consider the chord acceptable).
However, we cannot properly use this lemma, since we don't know if there is any
shadow underneath the chord. What we can say is:
3
A more accurate denition of red edge will be given in the next section.
70
A { How to shrinkwrap a saddle point
if there is any shadow beneath a chord the maximal relative deviation between a
chord and its shadow is less than E.
Another problem is that lemma 4 holds only for non-self-intersecting surfaces;
instead, our attention is really focused on self-intersecting surfaces. Anyhow, we can
consider valid this lemma making the following consideration: the starting structure
is a thetraedron or an icosaedron wrapping the equipotential surface at a very low
potential; vertices and edges are repeteadely shifted on higher potential surfaces
until the nal one is reached. So, a conguration like the one shown in gure A.7a
is not reachable, because the approximating structure is always wrapping externally
the real iso-potential surface.
nB
nA
nA
B
B A
A
(a)
nB
(b)
Figura A.7. Unbounded error for self-intersecting surfaces (a) and for non-selfintersecting surfaces (b).
Intuitively, the method we want to follow in the labeling process is the following:
as shown in gure A.5, the surface at a value Vc + is made up of two dierent
surfaces or contains a hole; the chords "hanging" between the two surfaces
(like the chord A , B ) are not approximating any part of the surface;
in this situation, the region of space underneath the candidate red edges has
a potential lower than the iso-value; in particular the location corresponding
to the point at maximal distance away from the chord in a case of a non-selfintersecting surface has a potential lower than the iso-value;
What we can do now, is calculate the potential of the location specied by
equation (A.5) and confront it with V (the iso-value): if it is greater or equal V ,
the point falls on or inside the equipotential surface (that means also that a surface
beyond this edge exists), otherwise the edge falls in the case of the previous items.
0
0
71
A { How to shrinkwrap a saddle point
Named C the point at maximal distance away from the chord, there are several
way to compute its potential.
A rst way to proceed is to calculate the value of the potential in C by means
of a simple rst order Taylor expansion (see g. A.8)
Lower potential
A
M
B
Higher potential
S
C
Figura A.8. A chord and its shadow when the distance chord-shadow is maximal
M is the middle point of A , B , and S is the vector from M to the maximal
distance point (C ), and jS j = E jA , B j. So:
f (C ) = f (M ) + (rf (M );S ) + h:o:t:
(A.6)
where h.o.t. are:
h:o:t: = 12 (S;r(S;rf )) + (OjS j )
(A.7)
3
(S;r(S;rf )) can be considered neglectable in comparison with (rf (M );S ).
To give an upper bound for the expression of equation (A.6) we can call V the
maximal value of the dot product between rf and S :
V = jrf j jS j
(A.8)
and so
f (C ) f (M ) + V
(A.9)
We can consider that f (M ) + V gives an upper bound for the real value of the
potential in C (it is possible to show that we can consider it as a valid approximation).
Now we have to distinguish between two cases:
72
A { How to shrinkwrap a saddle point
underneath the chord there is a surface. Point C falls inside the iso-potential
surface and so f (C ) V , where V is the value of the actual iso-potential
0
0
surface.
underneath the chord there is no surface. All the points beneath the chord AB
have a potential lower than or equal to the critical value, that is lower than
V . Hence f (C ) < V .
0
0
If the condition f (C ) f (M ) + V < V is satised, the edge AB is labeled as
red. Instead, the condition f (M ) + V V is not enaugh to assure that point C
is inside the isosurface.
We can calculate the exact position of C . Using the plane curve assumption
([Overveld 93, page 5]), this point falls on the line perpendicular to A , B passing
through M , in the same half-plane of rf (A) and rf (B ) with respect to the line
passing through A and B and at a distance E jA , B j from M . Knowing the
position of C we can calculate the value of the eld there (see gure A.9)
0
0
B
M
Π
A
C
Figura A.9. Calculating C using the plane curve assumption
To avoid waste of resources and of computation time, the process of labeling
edges is started only when we need it, that is when the mesh we are computing
corresponds to the potential in a critical point.
73
A { How to shrinkwrap a saddle point
A.4 Fixing the topology
After we have found a set D of red edges we can derive from it a set of vertices,
called rev vertices (REd triangle Vertices). T is the set of rev vertices.
Denition A.4.1 A vertex v belongs to T if v is a vertex of a red triangle.
We can dene a neighbourhood relation between rev vertices
Denition A.4.2 v 2 T and v 2 T are rev-neighbours if there exists an edge
1
2
connecting v1 and v2 which is not a red edge (g A.10).
A
C
E
B
D
Red edge
Normal edge
A,B,C,D are revs, but not E
A and B are rev-neighbours and so C and D but not B and C
Figura A.10.
Removing red edges from the mesh, vertices facing empty space are the vertices
belonging to T . From these vertices we can derive two subsets of rev (T and T )
that have no rev-neighbourhood relations between them.
One can think about these two subsets as the border of the splitting surfaces
(just as the rim of a glass) and they contain the points from which start to build a
new closed manifold (see gure A.11).
1
2
Denition A.4.3 A subset Ti of T is correct if every vertex in Ti has exactly two
rev-neighbours.
What we could expect now is that all the revs have two rev-neighbours. This
property results from the triangular tessalation of the surface. Unfortunately, we
don't always get this behaviour. One "unlucky" case is, for example, when you have
74
A { How to shrinkwrap a saddle point
Revs
Red edges
Figura A.11.
a very asymmetrical distribution of the charges in the space. What one can obtain
is a situation like the one shown in g A.12; this is caused by having very short
edges that are still part of the surface, but are in the middle of the red edges area.
Anyway, by means of adding or removing edges from D, it is possible to have
two subsets of T that are correct. A simple way to enlarge T is the following:
75
A { How to shrinkwrap a saddle point
1
Charge primitives
Red edges
A
2
Edge A is still part of the surface
rev nr. 2 has only one rev-neigh.
rev nr. 1 has three rev-neighbours
Figura A.12.
If a rev v has only one rev-neighbour, we can label the edge connecting it with
its neighbour as red.
If a rev v has more than two rev-neighbours, we can label as red the edges
connecting it with other revs having only one or more than two rev-neighbours.
If none of its neighbours satisfy this condition, we can label as red all the edges
connecting v with its rev-neighbours (we couldn't nd an intuition as to the
geometrical conguration corresponding to this case).
The aim of this process is to obtain two subsets that form a closed surface in the
space (with order of connection one), and a neighbour chain of the revs belonging
to the subset that forms a closed loop. This is essential to understand which kind
of singularity we have (a ssure or a hole).
A.4.1 Is it a ssure or is it a hole?
There is a very easy way to understand which kind of singularity we have. If we
already have T and T subsets that are correct, we can have two dierent cases.
When a ssure occurs, the two borders of the ssure are connected together only
by a series of red edges, but revs belonging to the same subset (T or T ) can only
1
2
1
76
2
A { How to shrinkwrap a saddle point
have rev-neighbourhood relations and no other kind of connections between them;
so we can't have any red edge connecting v ;v 2 Ti. A red edge can only connect
two revs belonging to dierent subsets. The surfaces dened by T and T are inside
the iso-potential surface created (see gure A.13):
1
2
1
2
surface defined by a subset of T
is inside the isopotential surface
created
red edges can only connect
revs belonging to different
subsets
Iso potential surface
Figura A.13.
When the singularity is a hole, T and T represent again the two borders of the
ssure, but this time they do not have any kind of connection between them. Revs
belonging to the same subset can be connected together either via a red edge or via
a rev-neighbourhood relation.
A red edge can only connect two revs belonging to the same subset. The surfaces
dened by T and T are through and through part of the isopotential surface created
(see gure A.14):
Now we can take any rev A that is a vertex of a red edge; B is the other vertex
of the same edge. As explained above, since A and B are connected via a red edge,
in the case of a ssure A and B belong to two dierent subsets, whereas in the case
of a hole A and B belong to the same subset; so, just by checking to which subset
A and B belong we can know what kind of critical point we have.
1
1
2
2
77
A { How to shrinkwrap a saddle point
iso potential surface
two revs of different
subsets have no direct
surfaces defined by the subsets
connections
of T are part of the iso potential
surface created
Figura A.14.
The method implemented is a little bit dierent. Instead of dividing T into
subsets and then checking the kind of each subset, we assign a kind to the subset
while we are building it. So, taken a red edge and named its vertices A and B , we
can start a loop for the neighbours of B . Named P the vertex B and P one of its
neighbours, the loop is performed by moving from P to P , P ; : : :; Pn . If we meet
A, then A and B belong to the same subset, because rev-neighbourhood relations
can exist by denition only between revs belonging to the same subset, and we have
to deal with a hole. Instead if we end the loop returning to B without having met
A, then A and B belong to dierent subsets (that is, we have a ssure; one face of
the ssure is the subset containing A and the other is the subset containing B ).
0
1
0
78
1
2
A { How to shrinkwrap a saddle point
A.4.2 How to x the topology
Now we know whether we have to make a hole or to ssure the surface. Even now
we have two dierent way to proceed. One thing in common for the two methods,
is that before creating a new topology, we have to destroy the old one. That is,
we have to remove red edges, red triangles, and all the revs that become isolated
because of the removal of all the surrounding triangles. These revs are due to the
enlargement process and they are surrounded only by red edges; so, they properly
belong to neither of the constructed subsets of T , although they do belong to T (e.g.
see vertex A in g. A.15).
A is a rev but it doesn’t belong
to any of the subsets of T. Edge AB
has been labelled as red during the enlargement
process (see also fig 9).
B
T1
A
T2
Figura A.15.
Fixing a ssure
For every border we have to connect together revs belonging to the same subset.
The easiest way to do it is:
79
A { How to shrinkwrap a saddle point
1. calculate the center of the border (Ci = vj 2Ti vnj where n = jTi j )
2. shift it on the iso-potential surface
3. connect all the vertices of the border with it
P
We will obtain n new triangles and 1 new vertex (g. A.16).
Ci
Ti
Figura A.16.
This method produces a low number of new triangles but sometimes produces
very stretched ones, especially when the ssure occurs in a point of high curvature.
This means that in this part of the surface there is a very high density of triangles,
that results in having a vertex, the center of the border, connected with a lot of
surrounding vertices (a little hedgehog in the mesh). This vertex has a strong
predominance as respect to its neighbours, and some operations, such as relaxation,
are ineective when applied to it.
To overcome this disadvantage when jTij exceeds a chosen value we can use a
dierent xing method, which consists in building a sublayer in between the center
of the subset and the rev neighbours chain. The dimension of this sublayer should
be such that, at the end of the xing process, both its member and the center of
the subset will have almost the same number of neighbours (that results in having
almost the same number of surrounding triangles for these vertices). This can be
done in the following way:
1. Set an order relation between the revs of the subset (e.g. take a rev and assign
to it the order number 0. Choose one of its neighbours and assign to it the order
number 1. Following the loop in this direction assign an increasing order number
to every rev you meet). L is the set of rev belonging to the sublayer. Initially L=;.
80
A { How to shrinkwrap a saddle point
2. Compute a step factor STEP =
jq
k
jTij
3. For every rev of the subset having an index i multiple of STEP do:
calculate the mean point between i and the center of the subset; call this vertex
v.
shift v on the iso-surface. L=L+v .
The sublayer and the neighbours chain can be connected following the same
procedure explained in xA.4.2; the sublayer and the subset center can be connected
as explained in the previous part of this section.
Figura A.17.
l
jq
km
If n = jTij and m = n= jTij , then we will obtain 1 + m new vertices and
n + 2m new triangles. In gure A.17 is shown a very simple case in which jTij = 6
and m = 3. The mean number of neighbours for each vertex of L is m + 3, while
for the center of Ti is m.
81
A { How to shrinkwrap a saddle point
Fixing a hole
Fixing a hole when the rain gets in
and stop my mind from wandering
where it will go
Lennon & McCartney
Now the situation is a little more dicult. We have to connect revs belonging to
T only with revs of T (see g A.14). Then the connecting edges should not cross
the hole, otherwise we will only build up a dierent mess.
What "do not cross the hole" means in mathematical terms is that the two
extremes of the connecting edges (named A and B ) must lie in the same half space
dened by the plane perpendicular to the projection of the vector A , C or B , C
(where C is the critical point) on the cutting plane. A simpler denition is that the
dot product between the projections of A , C and B , C on the separating plane
must be positive (see g A.18).
1
2
A
C
B
Figura A.18.
The main idea of the criterion is to try to connect revs following the same
orientation in the neighbourhood chain of the two subsets. Since the two subsets
can have dierent dimensions, we try to link a rev with the nearest rev chosen in
the neighbourhood. We can proceed as follows:
1. look for a starting point. Here we look for two vertices belonging to two dierent
subsets that have minimal distance and that are not crossing the hole. When
we nd them we also choose the orientation to follow in the neighbourhood loop
(clockwise or counterclockwise).
82
A { How to shrinkwrap a saddle point
2. connect the two vertices together; I and J are the starting revs, NEXTI and NEXTJ
are their neighbours in the orientation chosen in step nr. 1.
3. a and b are the distances between this vertices as shown in g. A.19
I
NEXT_I
a
b
NEXT_J
J
Figura A.19.
if a=min(a,b), connect I and NEXTJ. Then let J=NEXTJ and NEXTJ=next
neighbour of NEXTJ. Go to step 4
else, connect J and NEXTI. Then let I=NEXTI and NEXTI=next neighbour of
NEXTI. Go to step 4
4. if both I and J are equal to their starting value, exit. Else go to step 3
If jT j + jT j = n, we will obtain n new triangles (g. A.20).
1
2
T1
T2
Figura A.20. jT1j = 5;jT2j = 4. 9 new triangles
83
A { How to shrinkwrap a saddle point
A.5 Dealing with complex topologies
The method described in the previous paragraphs works very well, but it is a little
bit too simple. If it's designed in this poor way, it just can deal with only one
critical point at the same time, but the topology can be arbitrarely complicated.
Consider for instance four point charges on the vertices of a square, all having the
same charge value. At a certain potential there are four ssures (one for every edge
of the square) at the same time.
So we have to nd a new organization of the data base, that is able to manage
these situations.
A.5.1 Some denitions
Let us start by some denitions.
Denition A.5.1 A critical point is active when the value of the iso-potential
surface we're creating is corresponding to the value of its own potential, that is (as
explained in xA.3.1) V0 = Vc + , where V0 is the iso-value and Vc is the potential
value of the critical point
Now that we consider the case of having more than one critical point at the
same time, T should not be split into two subsets only, but into a greater number of
subsets depending on the number of the active critical points. So, we have to relate
critical points and subsets.
Denition A.5.2 A subset Ti is related to a critical point Pj that is the critical
point closest to the center of the rev-neighbours chain of the subset.
First thing we have to remark is that it is possible, because of approximations
in the computation and because of the fact that vertices are never exactly on the
iso-potential surface, that some edges are labeled as red whereas they're still part of
the iso-potential surface. That is more likely when you get really close to a saddle
point, but the potential value you're computing is related to a second critical point,
that is somewhere else in the space.
Denition A.5.3 A subset Ti of T is active if it is related to a critical point that
is active.
Another problem is that we have to nd a way to link borders; to link the two
faces of a ssure is trivial since they are connected by a red edge. More complicated
84
A { How to shrinkwrap a saddle point
is the case of two sides of a hole, because there isn't any kind of connection between
them.Two hole faces are faces of the same hole if they relate to the same critical
point and the dot product between the vectors connecting critical point and centers
of the subsets is less than zero.
A.5.2 How to proceed
We can proceed in the following way. First of all we build up all the following
structures:
1. we store all the information about the critical points we have found in a table.
So we know where they are and what their potential value is.
2. when a critical value is reached, we build a table of revs, in which we record:
- information about the point (position, potential value, neighbour vertices,
etc: : : )
- the number of the rev-neighbours and the connecting edges
- the index of the subset of T it belongs to
3. a table of subsets of T to store:
- cardinality of Ti
- which critical points it relates to (that is the critical point closest to the
center of the rev-neighbours chain)
- which kind of border it is (if it is a face of a ssure or a part of a hole)
- a ag to know if the subset is active
- the subset Tj which Ti relates to
When we reach a critical value:
rev table is build up
T is divided into subset as explained before and to every subset is assigned a
type (ssure or hole)
Every rev is labelled with the index i of the subset it belongs to or with ,1 if
it doesn't belong to any subset, and every subset is related to a critical point
Active attribute is set for all T subsets
85
A { How to shrinkwrap a saddle point
for all the active subsets:
Subsets are linked
all red triangles revs of the active lists belong to are removed
all isolated revs are removed
structure is xed as explained before
86
A { How to shrinkwrap a saddle point
A.6 Evaluations
A quantitative analysis of the overload introduced by the new features is not straightforward, since no comparison can be made on the same instances with the earlier
Shrinkwrap. So one must be satised with computing the mean increase in terms
of IFEPTs (Implicit Functions Evaluated Per Triangle). The results are not yet
comparable because the number of IFEPTs depends on the number of iterations
done; in [Overveld 93] this number is 7 (the optimal number) and here it is usually
9, so a rescaling of the results is due.
The overload introduced is mostly due to the iterations of the Newton-Raphson
method. However it is possible to run Wsoid avoiding this process: the program
automatically records informations about critical points on a le and restarting
the process we will have all the necessary information on them without needs of
any computation. In the table nr. A.1 we show a comparison between these two
methods.
Instance
Triangles Newt.on IFEPTs Newt.o IFEPTs Dierence
4lines
746
7668
10.28
6582
8.82 -14.20 %
1torus
458
5230
11.42
4475
9.77 -14.44 %
4points
2366
43618
18.44
32035
13.54 -26.57 %
2triangles
640
11875
18.55
8107
12.67 -32.80 %
2points
1204
26152
21.72
16679
13.85 -36.22 %
1line-1point
606
14267
23.54
6969
11.50 -48.85 %
Tabella A.1.
The old Shrinkwrap gives an IFEPT ' 8:31; now we have IFEPT ' 11:69
(+40.67%) when Newton computation is o and IFEPT ' 17:32 (+108.42%)
when it is on. Rescaling the results we obtain, respectively, 9.85 (+18.52%) and
14.55 (+75.08%).
The instances used to build table A.1 contains usually only one critical point
except 4points that consists of four equal point sources on the vertices of a square
and that creates one hole in the center of the square and four ssures on the edges
of the same.
Two observations shall be made. First, the instances in the three starting lines
all generate holes; their "economicity" is due to the fact that an hole usually gives
rise to a much lower number of red edges as regards of a ssure. Second, the number
of computation of the Newton-Raphson method penalize considerably the performances. This number depends mainly form the dimension of the set S ; reducing
this dimension, that is a parameter of the program, the overload introduced is consequently reduced. The default threshold for S is maybe expansive, but has the
87
A { How to shrinkwrap a saddle point
advantage of being able to deal with any input instances, irrespective of its complexity.
A.7 Conclusion
We present an improvement of the Shrinkwrap algorithm. Now almost every kind
of nal iso-potential surface can be polygonized (see Appendix) even if we have to
change the topology of the starting surface (the original tetrahedron).
All new features respect the basic philosophy of the primary Shrinkwrap, and
they can be made "transparent" to the user, since the list of the iso-valuess used to
reach the nal surface is automatically changed in order to take care of the critical
points introduced by the instances.
A disadvantage still to solve is that it is not possible to x a hole with more than
two splitting surfaces.
A.8 Acknowledgments
I would like to thank the people who made this work possible: Kees van Overveld
and Wim Nuij. Without their help I would still be digging into problems. Thanks
for being always very friendly, available and patient. A lot of thanks also to all
the members of the Computer Graphics Group that I stressed asking every kind of
information. The biggest thank is anyway for Claudia, for all the support she gave
me and for being close to me during this period.
88
Bibliograa
[Artley 65]
[Bink 94]
[Blinn 82]
[Bloomenthal 87]
[Bloomenthal 88]
[Bloomenthal 90]
[Cohen 94]
[Holmstrom 89]
[Mizr 82]
[Press 86-1]
J. Artley,Fields and conguration, Holt, Rinehart and Winston,
pages 192-205, 1965.
A.J. Bink, E.H. Hautus, C.W.A.M. van Overveld. Visualizing volumetric data: an automatic solution to the branching problem.
Technical University Eindhoven, internal report, 1994.
James Blinn. A generalization of algebraic surface drawing. ACM
Transactions on graphics, 1:235, 1982.
Jules Bloomenthal. Boundary representation of implicit surfaces.
Res. Rep. CSL-87-2, Xerox PARC.
Jules Bloomenthal. Polygonisation of Implicit Surfaces. Computer
Aided Geometric Design, (5):341-355, 1988.
Jules Bloomenthal, Brian Wyvill. Interactive techniques for implicit modeling. Proceedings of the SIGGRAPH '90. In Computer
Graphics 24, 4, pp 109-116.
Daniel Cohen, Arie Kaufman, Yingxing Wang. Generating a
smooth voxel-based from an irregular polygon mesh. The Visual
Computer (1994) 10:295-305.
Holmstrom L, Laakko T, Mantyla: M, Rekola P. Ray tracing of
boundary models with implicit blend surfaces. In: Straer W. Seidel HP (eds) Theory and practice of geometric modeling. Springer,
Berlin Heidelberg New York, pages 252-271.
Abe Mizrami and M. Sullivan, Calculus and analytical geometry,
Wadsworth Publishing Company, 1982.
W.H. Press, B.P. Flannery, S.A. Teukolsky, W.T. Vetterling, Numerical Recipes, Cambridge University Press, pages 270-273, 1986.
89
Bibliograa
[Press 86-2]
[Schmidt 93]
[Sederberg 86]
[Overveld 93]
[Witkin 94]
[Wyvill 86]
W.H. Press, B.P. Flannery, S.A. Teukolsky, W.T. Vetterling, Numerical Recipes, Cambridge University Press, pages 335-380, 1986.
Michael F.W. Schmidt. Cutting cubes; visualizing implicit surfaces
by adaptative polygonization. The Visual Computer (1993) 10:101115.
Thomas W. Sederberg, Scott R. Parry. Free-form deformation of
solid geometric models. Proceedings of the SIGGRAPH '86. In
Computer Graphics 20, 4, pp 151-160.
C.W.A.M van Overveld and Brian Wywill Shrinkwrap: an adaptative algorithm for polygonizing an implicit surface, The University of Calgary, Department of computer science, Research Report
No. 93/514/19, March 1993.
Andrew P.Witkin, Paul S.Heckbert. Using particles to sample and
control implicit surfaces. Proceedings of the SIGGRAPH "94. In
Computer Graphics 20, pp 269-277.
Geo Wyvill, Craig McPheeters, Brian Wyvill Data structure for
soft objects. The Visual Computer (1986) 2:227-234.
90