Mesh 3D poligonali
In computer graphics gli oggetti 3D vengono approssimati da una rappresentazione della loro superficie detta B-Rep (Boundary representation) La superficie si assume sia una varietà due-dimensionale(two-manifold) (l’intorno di ogni punto della superficie è omeomorfo ad un disco piano)
Data questa rappresentazione di un oggetto 3D una Mesh 3D e una approssimazione per mezzo di poligoni (in genere triangoli per semplificazione implementativa)
Mesh two-manifold: vincoli
Per far si che anche la mesh che approssima la superficie sia two-manifold un lato non può essere condiviso da 3 o più facce, e facce che condividono un vertice devono formare un ventaglio
Normale ad una faccia
La normale di una faccia e definita come il prodotto vettoriale fra due lati consecutivi e non collineari
la normale e uscente dal front della faccia, occhio al verso
Mesh orientabile
Se la normale di tutti i poligoni di una mesh e rivolta verso la stessa direzione (esterno/interno di una mesh) allora si dice che la mesh e orientabile
Le facce di una mesh devono essere descritte in maniera coerente
Coerenza delle facce
L’orientazione di due facce adiacenti è coerente se i due vertici del loro lato in comune sono in ordine inverso. Vuol dire che l’orientazione non cambia attraversando il lato in comune.
Mesh chiusa vs mesh aperta
Una mesh aperta si contraddistingue da una mesh chiusa perché presenta lati vertici e facce di bordo
Topologia e geometria di una mesh
Una mesh poligonale e’ caratterizzata da una geometria e da una topologia:
GEOMETRIA | TOPOLOGIA |
---|---|
come sono disposti i vertici nello spazio | come i vertici sono connessi da lati e facce |
due mesh possono condividere la stessa geometria ma descrivere due modelli diversi per mezzo della loro topologia!
Mesh storing
Le informazioni per comporre una mesh vengono salvate in maniera indicizzata
flowchart TD A[Mesh] B[lista di vertici] C[coordinate di un vertice] D[lista di facce] E[riferimento ai vertici] F[coordinate nello spazio texture] G[informazione colore] A --> B & D B --> C & F & G D --> E & G
per il salvataggio delle mesh 3D uno dei formati possibili e il formato OBJ commercializzato dalla Alias-Wavefront
Editing di mesh 3D
L’editing di una mesh 3D e quel processo attraverso il quale si applicano modifiche a una mesh 3D aggiungendo rimuovendo facce,vertici e poligoni
Le operazioni di editing che non alterano la topologia della mesh vengono detti operatori di Eulero alcuni esempi di tali operazioni sono:
- aggiunta/rimozione di un vertice
- aggiunta/rimozione di una faccia aggiungendo o eliminando un lato
Rappresentazione comoda per l’editing: adiacenze
In fase di editing la rappresentazione per mezzo di facce e vertici non e ottimale in quanto ci si ritrova spesso a accedere a vertici e facce adiacenti ad altre, risulta comoda una struttura dati che tenga conto delle adiacenze
struttura dati per la rappresentazione di lati
name | start | end | left | right | pred | succ | pred | succ |
---|---|---|---|---|---|---|---|---|
1 | 2 |