Moduli logici di un Ambiente Virtuale Sintesi Campionamento Comportamenti Proprietà AMBIENTE VIRTUALE Management Rendering Interazione UTENTE È 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 Fisiche Meccaniche Ottiche Surface modeling: vengono descritte solo le superfici dell oggetto Solid modeling: viene descritto tutto l oggetto inteso come solido 3D 1
Es. modellazione manuale (sintesi) Es. acquisizione 3D (campionamento) 2
Solid Modeling 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 3
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) Solid modeling: Voxels Anche in questo caso l oggetto l è 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) 4
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 Surface Modeling 5
Surface Modelling Oggetto come superficie Superficie: sottoinsieme S di R 3 intrinsecamente bidimensionale Tipi di rappresentazione Implicita: F(x,y,z) = 0 definizione troppo generale (non sempre produce superfici) F F non sempre disponibile ed equazione non sempre risolvibile Parametrica: ψ : Ω R 3 (con Ω R 2 ) ψ non è sempre facile da deteminare 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 ψ : Ω R 3 6
Curve di Bezier 4 punti di controllo (P 1..4 La curva passa da P 1 e P 4 Tangenze in P 1 a (P 2 P 1 ) in P 4 a (P 3 P 4 ).4 ) Equazione: Q(t) = (1-t) 3 P 1 + 3t(1-t) t) 2 P 2 + 3t 2 (1-t) P 3 + t 3 P 4 = G B T(t) = i P i B i (t) G = geometry,, ovvero vettore dei punti = [P 1 P 2 P 3 P 4 ] B = spline basis,, matrice tipica della classe di curve T(t) = power basis = [t 3 t 2 t 1] T B i (t) = blending (oppure basis ) functions Bezier Cubic Patch Bezier Patch - 16 control points - cubica ψ (u,v) = i j P ij B ij (u,v) i,j = 0..3.3;; u,v [0,1] Le B ij 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. 7
Bezier Cubic Patch Mancanza di controllo locale Effetto dello spostamento di un c.p. Le B-splines usano delle funzioni di blending che consentono di avere controllo locale. Fanno uso di punti di controllo addizionali (knot( knot-points) ) che possono essere equispaziati o meno (NURBS( NURBS) Sono precise ma computazionalmente onerose NURBS Nella grafica 3D real-time 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. 8
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 Mesh poligonali 9
Mesh poligonali: bassa risoluzione Mesh poligonali: alta risoluzione 10
Mesh poligonali 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 11
Strutture Dati Esempio: Geometria = Lista di vertici (n elementi) G = { [x 1, y 1, z 1 ], [x 1, y 2, z 3 ],...} Connettività = Lista di triangoli (2n elementi): C = { [i 11, i 12, i 13 ], [i 21, i 22, i 23 ],...} Costo: 3n floats + 2n 3 log(n) bits 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 12
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 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 Alias che ne ha rilasciato le specifiche e un SDK facendolo diventare openstandard (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). 13
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 3D File Format: AAM 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 14
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 procedurale 15
Sampling Acquisizione (sampling( 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. 16
Acquisizione (sampling( sampling) Acquisizione: flusso dei dati Oggetto reale Nuvola di punti Mesh poligonale 3D Scan Meshing Ottimizzazione Recupero del dettaglio Semplificazione 17
3D Scanning - Tecnologie Touch-probe Precisione, oggetti di dimensione media (1-2 2 m), contatto, no colore CLIP 3D Scanning - Tecnologie Luce strutturata Economico, colore, no contatto, veloce, bassa precisione, oggetti di medie dimensioni 18
3D Scanning - Tecnologie Laser Scanner Time of flight Costo, precisione, velocità,, oggetti grandi, no contatto Usati soprattutto in architettura 3D Scanning - Tecnologie Laser Scanner Line Costo, colore, precisione, no contatyo,, veloce, oggetti di media dimensione Usato soprattutto per applicazioni relative a Beni Culturali 19
Image based modeling E una tecnica di modellazione che usa fotografie reali per descrivere le proprietà geometriche e l apparenza l 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. 20