SAMUELE CATTABRIGA POLIGONIZZAZIONE E VISUALIZZAZIONE DI SUPERFICI IMPLICITE
4
naturali complessi, ha però permesso col passare degli anni la
creazione di simulazioni computerizzate che hanno favorito
previsione e analisi di problemi associati a sistemi di calcolo
precedentemente non risolubili con facilità o funzioni di particolare
interesse che in un primo momento richiedevano anni e anni di
osservazione matematica.
Uno specifico settore dell'informatica, nato e cresciuto a partire da
ambienti di ricerca di analisi e calcolo numerico, si occupa nel
dettaglio dello studio attraverso metodi di rappresentatazione grafica
delle caratteristiche principali delle applicazioni delle teorie
matematiche e, nella fattispecie, si interessa dello studio di funzioni e
di equazioni particolari tramite la visualizzazione computerizzata
delle figure geometriche associate, siano esse curve o superfici, e del
loro interessante comportamento in alcuni situazioni ben definite
strutturalmente. Questa disciplina, nata come molte altre in scenari
universitari, trova molti sviluppi in applicazioni pratiche, da quelle
militari (ad esempio nello studio di superfici esistenti nella realtà o
nella visualizzazione di traiettorie) a quelle civili (si pensi
all'applicazione in ambito industriale), tanto che essa stessa è
divenuta con gli anni un settore indipendente, capace di sviluppare
un importante influsso anche nella rappresentazione di realtà
computerizzate perfino destinate al solo utilizzo ludico o
dell'intrattenimento.
In questa trattazione ci occuperemo in particolare di studiare queste
curve e superfici rappresentabili tramite calcolatori elettronici e la
loro visualizzazione.
Nel capitolo 1 vedremo i principi che regolano la modellazione e la
visualizzazione su elaboratore elettronico; nel capitolo 2
focalizzeremo la nostra attenzione sulle curve e le superfici definibili
in modo implicito e sulle loro caratteristiche e problematiche; nel
capitolo 3 analizzeremo quindi alcune tipologie di metodi di
rappresentazione esistenti, con un riferimento specifico ad un
efficiente algoritmo di poligonizzazione studiato e implementato
negli ultimi vent'anni da Bloomenthal e dai suoi collaboratori per la
rappresentazione di superfici implicite in tempo reale.
SAMUELE CATTABRIGA POLIGONIZZAZIONE E VISUALIZZAZIONE DI SUPERFICI IMPLICITE
5
Per quanto riguarda la visualizzazione di superfici poligonizzate, nel
capitolo 4 si fara’ luce sulle strutture di ottimizzazione per la
gestione ed il salvataggio dei dati inerenti alle operazioni effettuabili
dai poligonizzatori; nel capitolo 5 mostreremo una delle librerie piu’
utilizzate per la resa grafica (OpenGL); nei capitoli 6 e 7 si vedranno
uno sviluppo possibile per l’implementazione dell’algoritmo di
Bloomenthal e alcune superfici studiabili grazie ad esso.
SAMUELE CATTABRIGA POLIGONIZZAZIONE E VISUALIZZAZIONE DI SUPERFICI IMPLICITE
7
CAPITOLO 1:
MODELLAZIONE E VISUALIZZAZIONE
DI CURVE E SUPERFICI
1.1. Il procedimento: modellazione e visualizzazione
Sia che ci si trovi in un contesto bidimensionale, sia che il nostro
ambiente di partenza sia espresso tramite coordinate tridimensionali,
esso si ispira al modello di base fornito dalla nostra esperienza nella
realtà a noi circostante. Il processo che ci permette di raffigurare un
oggetto in due o tre dimensioni tramite elaboratore elettronico si basa
perciò su un primo passaggio che si occupa di estrapolare le
informazioni sul modello che lo costituisce e di ricostruire il modello
stesso, indipendentemente dalle scelte di visualizzazione in cui esso
verrà poi mostrato. Successivamente, una volta ricostituite le
caratteristiche dell'oggetto scelto (sia esso una curva o una superficie,
o solido), si può selezionare con oculatezza la tipologia di resa
visuale che ci permetterà di poter vedere sullo schermo del computer
ciò che abbiamo ricostituito durante la prima fase. Questo
procedimento appena enunciato evidenzia una sequenza costante per
qualunque rappresentazione grafica su un calcolatore, nei due punti
di modellazione e visualizzazione, perfettamente esaminabili e
trattabili separatamente seppure strettamente collegati; è sempre
possibile, infatti, costruire visualizzazioni differenti di oggetti
essendo in possesso di uno o più modelli a priori definiti, così come
ci si può permettere di studiare le numerose possibilità di costruzione
SAMUELE CATTABRIGA POLIGONIZZAZIONE E VISUALIZZAZIONE DI SUPERFICI IMPLICITE
8
di strutture che compongano gli oggetti sapendo di disporre sin
dall'inizio di un contesto e una serie di parametri per la scena in cui
essi saranno sicuramente visualizzati.
1.2. Cenni sulla modellazione
Generalmente, pensando ai concetti espressi tramite parole come
"modello" e "modellazione" nell'ambito non prettamente legati alla
grafica per computer, viene subito in mente una stretta relazione di
questi con la definizione di qualche schematismo che sia espressione
di un'approssimazione della struttura che si sta per prendere in
esame, più o meno definito in base alle tipologie di studi che su di
essa si vorranno effettuare. Tale concezione viene adottata anche nel
caso dello studio grafico di curve, superfici e di altri oggetti tramite
elaboratore, mediante la definizione di una serie di regole
geometriche che andranno a costruire le basi del nostro modello di
gestione, bidimensionale o tridimensionale.
Esistono differenti possibilità quindi, a seconda delle scelte
effettuate, per definire le strutture di rappresentazione di oggetti, e
possiamo sintetizzarle in base a due problemi cruciali: la scelta del
sistema di coordinate e quella dell'orientamento del sistema.
Abbiamo infatti due modi comuni di rappresentare gli oggetti, uno
basato su coordinate di tipo cartesiano (fig. 1a) e l'altro riferito a
coordinate polari o sferiche (a seconda che l'ambiente sia definito in
due o tre dimensioni) (fig. 1b).
SAMUELE CATTABRIGA POLIGONIZZAZIONE E VISUALIZZAZIONE DI SUPERFICI IMPLICITE
9
Se ci basiamo su una scelta per un sistema di tipo cartesiano, si
prevede l'esistenza di punti identificati come coppie o triple di
coordinate, nella fattispecie [x, y] oppure [x, y, z], ciascuna delle
quali fornisce rispettivamente la distanza di ogni punto dagli assi X e
Fig. 1b
Punto espresso tramite
coordinate polari (2D) o
sferiche (3D)
2D 3D
P = (D, θ) P=(D, θ, φ)
φ
θ
x
y y
x
z
D
Fig. 1a
Punto espresso tramite
coordinate cartesiane
P = (x, y) P=(x, y, z)
x
z
y
x
y
SAMUELE CATTABRIGA POLIGONIZZAZIONE E VISUALIZZAZIONE DI SUPERFICI IMPLICITE
10
Y o dai piani YZ, XZ, XY. In un sistema a coordinate sferiche,
invece, ogni punto è individuato tramite la coppia [D, θ] o la tripla
[D, θ, φ], dove D indica la distanza OP del punto P dall'origine, θ è
l'angolo tra la direzione positiva dell'asse X e il segmento OP (o la
sua proiezione OP' sul piano XY, se OP è definito nelle tre
dimensioni), e φ l'eventuale angolo esistente tra il segmento e la
direzione positiva dell'asse delle Z. Come si può notare, è possibile
definire delle trasformazioni che ci permettono di ottenere le
coordinate in un sistema a partire da quelle espresse nell'altro; perciò
nel caso si abbiano coordinate polari o sferiche è sufficiente
effettuare le seguenti conversioni
2D 3D
per ottenere coordinate cartesiane. Viceversa
2D 3D
ci permette di ottenere una parametrizzazione polare o sferica a
partire da un sistema cartesiano [1 - 2].
La scelta dell'orientamento del sistema riguarda invece la decisione
su quale ordine dei versori degli assi considerare per la formulazione
del modello. In particolare, si definisce destrorso un sistema
orientato in modo che le prime due/tre dita della mano destra si
sovrappongano agli assi X, Y (e Z), con angoli considerati positivi
x = D cosθ
y = Dsenθ
⎧
⎨
⎩
x = D cosϕ cosθ
y = Dcos ϕ sen θ
z = Dsen ϕ
⎧
⎨
⎪
⎩
⎪
D = (x
2
+ y
2
)
θ = arccos(x / D)
⎧
⎨
⎪
⎩
⎪
D = (x
2
+ y
2
+ z
2
)
θ = arctg(y / x)
ϕ = arccos(z / D)
⎧
⎨
⎪
⎪
⎩
⎪
⎪
SAMUELE CATTABRIGA POLIGONIZZAZIONE E VISUALIZZAZIONE DI SUPERFICI IMPLICITE
11
solo se in senso antiorario; si definisce, al contrario, sinistrorso se
avviene lo stesso rispetto alle prime due/tre dita della mano sinistra,
considerando perciò positivi gli angoli orientati in senso orario.
Nella computer graphics, per convenzione, vengono utilizzati sistemi
destrorsi, principalmente di tipo cartesiano, ma possono inoltre
essere aggiunte ulteriori informazioni, al fine di determinare il
modello con maggiore precisione. La struttura B-Rep (Boundary
Representation) di un oggetto tridimensionale, ad esempio, organizza
le informazioni di base in una descrizione della composizione
dell'oggetto, costituita da una lista dei vertici in coordinate cartesiane
3D, una tabella dei lati (ognuno identificato dai vertici che ne sono
estremi) e una tabella delle facce, di cui ne memorizza tutti i dati
relativi. Come si nota, questa scelta, molto frequente, riduce gli
oggetti ad un insieme di specifiche che, di fatto, andranno a
comporre un modello poligonale dell'oggetto o degli oggetti
esaminati. A partire da questa tipologia strutturale, si sono sviluppate
numerose tecnologie (e tuttora nella ricerca è stato definito più di un
settore specifico che se ne occupa); la più diffusa, che è base di
formati più semplici, come quelli contenuti nei files .m, o più
complessi, come il formato dati contenuto nei files Alias/Wavefront
.obj, viene denominata VFE, da Vertex-Face-Edge: è implementata
tramite tabelle che ad ogni vertice associano coordinate, ad ogni lato
o segmento i propri vertici estremi e ad ogni faccia i lati che la
compongono, similmente alla specifica B-rep generica (anche se, in
questo caso, puo’ bastare la descrizione dei vertici e delle facce per
ricomporre l’intero modello) [2].
Un ulteriore tipologia di strutture per la modellazione, chiamata CSG
(Constructive Solid Geometry), prevede una descrizione basata sulla
composizione a partire da solidi esistenti, mediante operazioni per lo
più di estrapolazione o fusione, strutturate in un albero di
scomposizione con radice nel solido composto e foglie associate ai
solidi primitivi. Su di esso poi il modello fornirà un algoritmo per
l’efficienza nella composizione, che attraversa l’albero dalle foglie
alla radice, in un meccanismo depth-first. Alberi dalle caratteristiche
molto simili possono venire ripresi o utilizzati separatamente anche
in fase di rappresentazione, nella gestione di griglie poligonali, per