Modellazione
Moduli logici di un Ambiente Virtuale
Sintesi Campionamento
Comportamenti Proprietà
Rendering
UTENTE
Interazione
AMBIENTE VIRTUALE
Modellazione
Management
Modellazione
Modellazione
È il processo che porta alla descrizione di un
oggetto (modello), mediante sintesi o
campionamento
Tale modello può essere utilizzato in fase di
rendering e/o di simulazione
Proprietà dell’oggetto modellato:
Geometriche (forma)
Fisiche
Meccaniche (cinematica, statica, dinamica)
Ottiche (materiale)
Modellazione
Es. modellazione manuale (sintesi)
Modellazione
Es. acquisizione 3D (campionamento)
Modellazione
Modellazione geometrica
Solid modeling: viene descritto tutto l’oggetto inteso come solido 3D
Surface modeling: vengono descritte solo le superfici dell’oggetto
Modellazione
Solid Modeling
Modellazione
Solid modeling: CSG
Oggetto come porzione di volume
CSG (Constructive Solid Geometry)
L’oggetto viene descritto come semplice
composizione di alcune primitive 3D
(sfera, cubo, ecc)
Primitive modificabili tramite traslazioni,
rotazioni, deformazioni
Primitive componibili utilizzando
operatori booleani
Modellazione
Solid modeling: CSG
Permette di descrivere efficientemente oggetti “semplici”
Difficilmente applicabile a modelli di oggetti reali
Può essere combinata con altri tipi di modellazione (ciò avviene nei programmi CAD)
Modellazione
Anche in questo caso l’oggetto è visto come
porzione di volume
Sono di interesse le proprietà puntuali. Es: risultato
di una TAC, dati fluidodinamici, tensore degli sforzi
di un pezzo meccanico valutato in ogni punto.
La primitiva adottata
è il voxel
(volume element)
Solid modeling: Voxels
Modellazione
Solid modeling: Voxels
Griglia 3D uniforme
Facile gestione
Grande occupazione di memoria
Possibile comprimere i dati i modo efficiente
Ok se i dati sono distribuiti in modo uniforme e la rilevanza delle varie parti del volume è la stessa
Utilizzati per alcuni algoritmi di collision detection
Modellazione
Surface Modeling
Modellazione
Surface Modelling
Oggetto come superficie
Superficie: sottoinsieme S di R3
intrinsecamente bidimensionale
Tipi di rappresentazione
Implicita: F(x,y,z) = 0
definizione troppo generale (non sempre produce
superfici)
F non sempre disponibile ed equazione non sempre
risolvibile
Parametrica: : R3 (con R2 )
non è sempre facile da derteminare
Modellazione
Curve e Superfici Parametriche
La superficie è rappresentata da una
collezione di “patch”
Ciascuna patch è caratterizzata da un
reticolo di punti di controllo che ne
determinano posizione e forma
: R3
Modellazione
Curve di Bezier
n punti di controllo (P1..n)
La curva passa da P1 e Pn
Tangenze in P1 a (P2 – P1)
…
in Pn a (Pn-1 – Pn)
Equazione (es. n=4 -> grado del polinomio = n-1)
Q(t) = (1-t)3 P1 + 3t(1-t)2 P2 + 3t2(1-t) P3 + t3 P4 =
= i Pi·Bi(t) = G·B·T(t)G = geometry, ovvero vettore dei punti = [P1 P2 P3 P4]
B = spline basis, matrice tipica della classe di curve
T(t) = power basis = [t3 t2 t 1] T
Bi(t) = blending (oppure “basis”) functions
Modellazione
Bezier Cubic Patch
Bezier Patch – es. 16 control points -> cubica
(u,v) = i j Pij·Bij(u,v)i,j = 0..3; u,v [0,1]
Le Bij sono tali che sui 4 vertici del reticolo di
controllo posizione e derivate parziali (u, v) della patch corrispondano a quelle dei punti di
controllo, e che in tali punti uv = 0.
Modellazione
Bezier Cubic Patch
Mancanza di controllo locale
Effetto dello spostamento di un c.p.
Le B-splines (generalizzazione delle curve di Bezier)
usano delle funzioni di blending che consentono di
avere controllo locale. Fanno uso di punti di controllo
addizionali (knot-points) che possono essere
equispaziati o meno (NURBS)
Sono precise ma computazionalmente onerose
Modellazione
NURBS
Nella grafica 3D real-time, le NURBS vengono solitamente usate solo per
modellare un oggetto. Si procede poi ad una tessellazione per
approssimarlo ad una mesh poligonale che viene poi effettivamente
usata in tempo reale.
Modellazione
Mesh poligonali
Descrizione approssimata della superficie
Mesh: insieme di poligoni tale che due suoi elementi non si intersecano oppure condividono un vertice o uno spigolo.
Ogni poligono approssima una porzione di superficie
Vengono usate in prevalenza mesh di triangoli
Facili da rappresentare, manipolare, visualizzare
Sono ricostruibili a partire da dati campionati irregolarmente
Il rendering di un triangolo è ottimizzato in hw
Rappresentazione accurata numero elevato di triangoli elevate dimensioni e
“pesantezza” del modello
Selezione del numero di triangoli come scelta di trade-off
Modellazione
Mesh poligonali
Modellazione
Mesh poligonali: bassa risoluzione
Modellazione
Mesh poligonali: alta risoluzione
Modellazione
Mesh poligonali
Modellazione
Mesh Triangolari
Informazione codificata nel modello:
Geometrica
Posizione dei vertici
Normali ai vertici
Topologica
Connettività
Relazioni fra triangoli
Nota: in una mesh contenente n vertici
ci sono circa 2n triangoli
Modellazione
Strutture Dati
Esempio:
Geometria = Lista di vertici (n elementi)
G =
{v1: [x1, y1, z1], v2: [x2, y2, z2],…, vn: [xn, yn, zn],
}
Connettività = Lista di triangoli (m elementi ~2n) :
C = {
t1: [vi, vj, vk], t2: [vk, vl, vp],…, tm: [vq, vs, vt],
}
Costo: 3n floats + 2n·3·log(n) bits
Modellazione
3D File Format: VRML
VRML (Virtual Reality Modeling Language) è molto più di un
formato dati, dato che fornisce anche features di interazione
e descrizione. Tuttavia oggi è usato per lo più solo come
formato dati “universale”, leggibile e scrivibile da molti tipi
di SW diversi, nonostante i suoi numerosi dialetti.
In VRML è possibile descrivere un’intera scena 3D sotto forma
di albero di nodi. Vi sono 54 tipi differenti di nodi, alcuni di
questi rappresentano direttamente oggetti 3D, altri
realizzano connessioni gerarchiche.
E’ possibile specificare anche materiali, textures, e parametri
di camera/illuminazione.
Si è evoluto nell’X3D (formato multi-sintassi). Sample
Modellazione
3D File Format: OBJ
Formato file ASCII sviluppato da Wavefront, e utilizzato
spesso come formato di interscambio.
Il file format OBJ supporta linee, poligoni, e curve/superfici
free-form . Linee and poligoni sono descritte in termini dei
loro punti, mentre curve e superfici sono definite con I punti
di controllo e altre informazioni che dipendono dal tipo di
curve (Bezier, B-Splines, etc.).
Sample
Modellazione
3D File Format: Collada
Acronimo di COLLAborative Design Activity, si propone di
diventare lo standard di interscambio utilizzando uno schema
XML.
Originariamente realizzato da Sony, oggi è gestito dal
consorzio open-source Khronos Group.
E’ usato da Google Earth per memorizzare le informazioni 3D.
Permette di definire anche informazioni relative alla fisica.
Sample
Modellazione
3D File Format: FBX
Formato binario sviluppato da Kaydara per il software
Filmbox (gestore di animazioni e MOCAP), è diventato in
breve uno standard de facto di interscambio.
Successivamente è stato acquisito da Autodesk che ne ha
rilasciato le specifiche e un SDK facendolo diventare “open-
standard” (non tutti concordano…).
Permette di specificare non solo dati 3D, ma anche
animazioni, audio e video.
Permette di incorporare estensioni
di terze parti (es. COLLADA).
Modellazione
Formato nativo di XVR per la descrizione di mesh triangolari:
– ottimizzato sui tempi di caricamento in XVR
– disponibile in formato ASCII (per permettere facilmente
modifiche manuali) o binario (per caricamento veloce)
– 1:1 corrispondente alla strutture dati XVR
Supporta:
- Multitexturing
- Animazioni
- Smoothing Groups
- Shaders, Skinning
- Esportatori per Max, GMax, Maya
e Blender
3D File Format: AAM
Modellazione
Mixed modeling: Point-based modeling
I componenti di base sono i surfels (surface elements),
specificati tramite:
Coordinate 3D
Colore/Materiale
Normale (per i calcoli di illuminazione)
Rispetto ai voxels richiedono calcoli meno onerosi
Ottime per modelli provenienti da
sampling, evitando la produzione
di mesh e i problemi di connettività
Tuttavia non esistono ancora
efficienti implementazioni HW
Non gestiscono benissimo
geometrie semplici e superfici
piatte
Modellazione
Modellazione procedurale
Modellazione
Sampling
Modellazione
Acquisizione (sampling)
E’ possibile acquisire direttamente, tramite un processo di scansione, la geometria (e in alcuni casi anche il colore) degli oggetti.
Il risultato è una nuvola di punti più o meno densa a seconda della risoluzione dello scanner
Solitamente la nuvola di punti viene poi processata per ricavarne una mesh poligonale(la connettività è calcolata)
Le mesh così ricavate sono di solito ad altissima risoluzione, e necessitano di semplificazione per essere utilizzate in tempo reale.
Modellazione
Acquisizione (sampling)
Modellazione
3D Scan
Oggetto reale Nuvola di punti
Meshing
Mesh poligonale
Ottimizzazione
Semplificazione
Recupero del
dettaglio
Acquisizione: flusso dei dati
Modellazione
3D Scanning - Tecnologie
Touch-probe Precisione, oggetti di dimensione media (1-2 m), contatto, no colore
CLIP
Modellazione
Luce strutturata Economico, colore, no contatto, veloce, bassa precisione,
oggetti di medie dimensioni
3D Scanning - Tecnologie
Modellazione
Laser Scanner – Time of flight Costo, precisione, velocità, oggetti grandi, no contatto
Usati soprattutto in architettura
3D Scanning - Tecnologie
Modellazione
Laser Scanner Line Costo, colore, precisione, no contatto, veloce, oggetti di
media dimensione
Usato soprattutto per applicazioni relative a Beni Culturali
3D Scanning - Tecnologie
Modellazione
Image based modeling
E’ una tecnica di modellazione che usa fotografie reali per
descrivere le proprietà geometriche e l’apparenza della
scena
E più appropriato parlare di “Image based modeling and
rendering” dato che i due aspetti
sono sostanzialmente inscindibili
Un esempio è la fotogrammetria,
una tecnologia in cui si usano
misurazioni fatte usando 2 o più
fotografie prese da diverse posi-
zioni per ricavare le coordinate
3D di un oggetto.