ambiente virtualepercro.sssup.it/marcello/didattica/aa20082009/6_model... · 2008-03-07 · moduli...
TRANSCRIPT
Modellazione
Moduli logici di un Ambiente VirtualeModuli logici di un Ambiente VirtualeModuli logici di un Ambiente Virtuale
SintesiSintesiSintesi CampionamentoCampionamentoCampionamento
ComportamentiComportamentiComportamenti ProprietàProprietProprietàà
RenderingRenderingRendering
UTENTEUTENTE
InterazioneInterazioneInterazione
AMBIENTE VIRTUALEAMBIENTE VIRTUALE
ModellazioneModellazioneModellazione
ManagementManagementManagement
Modellazione
Modellazione Modellazione
ÈÈ il processo che porta alla il processo che porta alla descrizione di un descrizione di un oggettooggetto ((modellomodello), mediante ), mediante sintesisintesi o o campionamentocampionamento
Tale modello può essere utilizzato in fase di Tale modello può essere utilizzato in fase di rendering e/o di simulazionerendering e/o di simulazione
ProprietProprietàà delldell’’oggetto modellato: oggetto modellato:
Geometriche (forma)Geometriche (forma)
FisicheFisiche Meccaniche (cinematica, statica, dinamica)Meccaniche (cinematica, statica, dinamica)
Ottiche (materiale)Ottiche (materiale)
Modellazione
Es. modellazione manuale (sintesi)Es. modellazione manuale (sintesi)
Modellazione
Es. acquisizione 3D (campionamento)Es. acquisizione 3D (campionamento)
Modellazione
Modellazione geometricaModellazione geometrica
Solid modelingSolid modeling: : vieneviene descrittodescritto tuttotutto ll’’oggettooggetto intesointeso come come solidosolido 3D3D
Surface modelingSurface modeling: : vengonovengono descrittedescritte solo le solo le superficisuperficidelldell’’oggettooggetto
Modellazione
Solid ModelingSolid Modeling
Modellazione
SolidSolid modelingmodeling: CSG: CSG
Oggetto come porzione di volumeOggetto come porzione di volume
CSG (CSG (ConstructiveConstructive SolidSolid GeometryGeometry))
LL’’oggetto viene descritto come semplice oggetto viene descritto come semplice composizione di alcune primitive 3D composizione di alcune primitive 3D (sfera, cubo, ecc)(sfera, cubo, ecc)
Primitive modificabili tramite traslazioni, Primitive modificabili tramite traslazioni, rotazioni, deformazionirotazioni, deformazioni
Primitive componibili utilizzando Primitive componibili utilizzando operatori booleanioperatori booleani
Modellazione
SolidSolid modelingmodeling: CSG: CSG
Permette di descrivere efficientemente oggetti Permette di descrivere efficientemente oggetti ““semplicisemplici””
Difficilmente applicabile a modelli di oggetti realiDifficilmente applicabile a modelli di oggetti reali Può essere combinata con altri tipi di modellazione Può essere combinata con altri tipi di modellazione
(ciò avviene nei programmi CAD)(ciò avviene nei programmi CAD)
Modellazione
Anche in questo caso lAnche in questo caso l’’oggetto oggetto èè visto come visto come porzione di volumeporzione di volume
Sono di interesse le proprietSono di interesse le proprietàà puntuali. puntuali. EsEs: risultato : risultato di una TAC, dati fluidodinamici, tensore degli sforzi di una TAC, dati fluidodinamici, tensore degli sforzi di un pezzo meccanico valutato in ogni punto.di un pezzo meccanico valutato in ogni punto.
La primitiva adottata La primitiva adottata èè il il voxelvoxel
(volume (volume elementelement))
SolidSolid modelingmodeling: : VoxelsVoxels
Modellazione
SolidSolid modelingmodeling: : VoxelsVoxels
Griglia 3D uniformeGriglia 3D uniforme Facile gestione Facile gestione Grande occupazione di Grande occupazione di
memoriamemoria Possibile comprimere i Possibile comprimere i
dati i modo efficientedati i modo efficiente Ok se i dati sono distribuiti Ok se i dati sono distribuiti
in modo uniforme e la in modo uniforme e la rilevanza delle varie parti rilevanza delle varie parti del volume del volume èè la stessala stessa
Utilizzati per alcuni Utilizzati per alcuni algoritmi di algoritmi di collisioncollisiondetectiondetection
Modellazione
Surface ModelingSurface Modeling
Modellazione
SurfaceSurface ModellingModelling
Oggetto come superficieOggetto come superficie
Superficie: sottoinsieme S di RSuperficie: sottoinsieme S di R33
intrinsecamente bidimensionale intrinsecamente bidimensionale
Tipi di rappresentazione Tipi di rappresentazione Implicita: F(x,y,z) = 0Implicita: F(x,y,z) = 0
definizione troppo generale (non sempre produce definizione troppo generale (non sempre produce superfici)superfici)
F non sempre disponibile ed equazione non sempre F non sempre disponibile ed equazione non sempre risolvibilerisolvibile
Parametrica: Parametrica: ψψ : : ΩΩ →→ RR33 (con (con ΩΩ ⊂⊂ RR2 2 ))ψψ non non èè sempre facile da sempre facile da derteminarederteminare
Modellazione
Curve e Superfici ParametricheCurve e Superfici Parametriche
La superficie La superficie èè rappresentata da una rappresentata da una collezione di collezione di ““patchpatch””
Ciascuna patch Ciascuna patch èè caratterizzata da un caratterizzata da un reticolo di punti di controllo che ne reticolo di punti di controllo che ne determinano posizione e formadeterminano posizione e forma
ψψ : : ΩΩ →→ RR33
Modellazione
Curve di Curve di BezierBezier
n punti di controllo (Pn punti di controllo (P1..n1..n)) La curva passa da PLa curva passa da P11 e e PPnn
TangenzeTangenze in Pin P11 a (Pa (P22 –– PP11))
…… in in PPnn a (Pa (Pnn--11 –– PPnn))
Equazione (es. n=4 Equazione (es. n=4 --> grado del polinomio = n> grado del polinomio = n--1)1)
Q(t) = (1Q(t) = (1--t)t)3 3 PP11 + 3t(1+ 3t(1--t)t)2 2 PP22 + 3t+ 3t22(1(1--t)t) PP33 + t+ t3 3 PP44 = = = = ∑∑ii PPii··BBii(t) (t) = = GG··BB··TT(t)(t)
G = G = geometrygeometry, ovvero vettore dei punti = [P, ovvero vettore dei punti = [P1 1 PP2 2 PP3 3 PP44]]
B = B = splinespline basisbasis, matrice tipica della classe di curve, matrice tipica della classe di curve
T(t) = power T(t) = power basisbasis = [t= [t3 3 tt2 2 tt 1] 1] TT
BBii(t) = (t) = blendingblending (oppure (oppure ““basisbasis””) ) functionsfunctions
Modellazione
BezierBezier CubicCubic PatchPatch
BezierBezier Patch Patch –– es. 16 control es. 16 control pointspoints --> cubica> cubica
ψψ (u,v) = (u,v) = ∑∑ii ∑∑jj PPijij··BBijij(u,v)(u,v)i,j = 0..3; u,v i,j = 0..3; u,v ∈∈ [0,1][0,1]
Le Le BBijij sono tali che sui 4 vertici del reticolo di sono tali che sui 4 vertici del reticolo di controllo posizione e derivate parziali (controllo posizione e derivate parziali (ψψuu, , ψψvv) ) della patch corrispondano a quelle dei punti di della patch corrispondano a quelle dei punti di controllo, e che in tali punti controllo, e che in tali punti ψψuvuv = 0.= 0.
Modellazione
BezierBezier CubicCubic PatchPatch
Mancanza di controllo localeMancanza di controllo locale
Effetto dello spostamento di un c.p.Effetto dello spostamento di un c.p.
Le Le BB--splinessplines (generalizzazione delle curve di (generalizzazione delle curve di BezierBezier) ) usano delle funzioni di usano delle funzioni di blendingblending che consentono di che consentono di avere controllo locale. Fanno uso di punti di controllo avere controllo locale. Fanno uso di punti di controllo addizionali (addizionali (knotknot--pointspoints) che possono essere ) che possono essere equispaziatiequispaziati o meno (o meno (NURBSNURBS))
Sono precise ma Sono precise ma computazionalmentecomputazionalmente oneroseonerose
Modellazione
NURBSNURBS
Nella grafica 3D realNella grafica 3D real--time, le NURBS vengono solitamente usate solo per time, le NURBS vengono solitamente usate solo per modellare un oggetto. Si procede poi ad una modellare un oggetto. Si procede poi ad una tessellazionetessellazione per per approssimarlo ad una approssimarlo ad una meshmesh poligonale che viene poi effettivamente poligonale che viene poi effettivamente usata in tempo reale.usata in tempo reale.
Modellazione
MeshMesh poligonalipoligonali
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
MeshMesh poligonalipoligonali
Modellazione
MeshMesh poligonali: bassa risoluzionepoligonali: bassa risoluzione
Modellazione
MeshMesh poligonali: alta risoluzionepoligonali: alta risoluzione
Modellazione
Mesh Mesh poligonalipoligonali
Modellazione
MeshMesh TriangolariTriangolari
Informazione codificata nel modello:Informazione codificata nel modello: GeometricaGeometrica
Posizione dei verticiPosizione dei vertici
Normali ai verticiNormali ai vertici
TopologicaTopologica ConnettivitConnettivitàà
Relazioni fra triangoliRelazioni fra triangoli
Nota: in una Nota: in una meshmesh contenente n vertici contenente n vertici ci sono circa 2n triangolici sono circa 2n triangoli
Modellazione
Strutture DatiStrutture Dati
Esempio:Esempio: Geometria = Lista di vertici (n elementi)Geometria = Lista di vertici (n elementi)
G = G =
v1: [xv1: [x11, y, y11, z, z11], ], v2: [xv2: [x22, y, y22, z, z22],],
……, , vnvn: [: [xxnn, , yynn, , zznn],],
ConnettivitConnettivitàà = Lista di triangoli (m elementi ~2n) := Lista di triangoli (m elementi ~2n) :C = C =
t1: [vt1: [vii, , vvjj, , vvkk], ], t2: [t2: [vvkk, , vvll, , vvpp],],
……, , tmtm: [: [vvqq, v, vss, , vvtt], ],
Costo: 3n Costo: 3n floatsfloats + 2n+ 2n··33··log(n) log(n) bitsbits
Modellazione
3D File Format: VRML3D 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 diquesti 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: OBJ3D 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/superficifree-form . Linee and poligoni sono descritte in termini dei loro punti, mentre curve e superfici sono definite con I puntidi controllo e altre informazioni che dipendono dal tipo dicurve (Bezier, B-Splines, etc.).
Sample
Modellazione
3D File Format: 3D File Format: ColladaCollada
Acronimo di COLLAborative Design Activity, si propone didiventare 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: FBX3D 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 estensionidi 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: AAM3D File Format: AAM
Modellazione
MixedMixed modelingmodeling: : PointPoint--basedbased modelingmodeling
I componenti di base sono i I componenti di base sono i surfelssurfels ((surfacesurface elementselements), ), specificati tramite:specificati tramite: Coordinate 3DCoordinate 3D
Colore/MaterialeColore/Materiale
Normale (per i calcoli di illuminazione) Normale (per i calcoli di illuminazione)
Rispetto ai Rispetto ai voxelsvoxels richiedono calcoli meno onerosirichiedono calcoli meno onerosi
Ottime per modelli provenienti daOttime per modelli provenienti dasamplingsampling, evitando la produzione, evitando la produzionedi di meshmesh e i problemi di connettivite i problemi di connettivitàà
Tuttavia non esistono ancora Tuttavia non esistono ancora efficienti implementazioni HWefficienti implementazioni HW
Non gestiscono benissimo Non gestiscono benissimo geometrie semplici e superfici geometrie semplici e superfici piattepiatte
Modellazione
ModellazioneModellazione proceduraleprocedurale
Modellazione
SamplingSampling
Modellazione
Acquisizione (Acquisizione (samplingsampling))
EE’’ possibile acquisire direttamente, tramite un processo di possibile acquisire direttamente, tramite un processo di scansione, la geometria (e in alcuni casi anche il colore) scansione, la geometria (e in alcuni casi anche il colore) degli oggetti.degli oggetti.
Il risultato Il risultato èè una nuvola di punti piuna nuvola di punti piùù o meno densa a o meno densa a seconda della risoluzione dello scannerseconda della risoluzione dello scanner
Solitamente la nuvola di punti Solitamente la nuvola di punti viene poi processata per viene poi processata per ricavarne una ricavarne una meshmesh poligonalepoligonale(la connettivit(la connettivitàà èè calcolata)calcolata)
Le Le meshmesh coscosìì ricavate sono di ricavate sono di solito ad altissima risoluzione, solito ad altissima risoluzione, e necessitano di semplificazione e necessitano di semplificazione per essere utilizzate in tempo per essere utilizzate in tempo reale.reale.
Modellazione
Acquisizione (Acquisizione (samplingsampling))
Modellazione
3D Scan
Oggetto realeOggetto reale Nuvola di puntiNuvola di punti
Meshing
MeshMesh poligonalepoligonale
Ottimizzazione
Semplificazione
Recupero deldettaglio
Acquisizione: flusso dei datiAcquisizione: flusso dei dati
Modellazione
3D Scanning 3D Scanning -- TecnologieTecnologie
TouchTouch--probeprobe Precisione, oggetti di dimensione media (1Precisione, oggetti di dimensione media (1--2 m), contatto, no colore2 m), contatto, no colore
CLIP
Modellazione
Luce strutturataLuce strutturata Economico, colore, no contatto, veloce, bassa precisione, Economico, colore, no contatto, veloce, bassa precisione,
oggetti di medie dimensionioggetti di medie dimensioni
3D Scanning 3D Scanning -- TecnologieTecnologie
Modellazione
Laser Scanner Laser Scanner –– Time of flightTime of flight Costo, precisione, velocitCosto, precisione, velocitàà, oggetti grandi, no contatto, oggetti grandi, no contatto
Usati soprattutto in architetturaUsati soprattutto in architettura
3D Scanning 3D Scanning -- TecnologieTecnologie
Modellazione
Laser Scanner LineLaser Scanner Line Costo, colore, precisione, no contatto, veloce, oggetti di Costo, colore, precisione, no contatto, veloce, oggetti di
media dimensionemedia dimensione
Usato soprattutto per applicazioni relative a Beni CulturaliUsato soprattutto per applicazioni relative a Beni Culturali
3D Scanning 3D Scanning -- TecnologieTecnologie
Modellazione
ImageImage basedbased modelingmodeling
EE’’ una tecnica di modellazione che usa fotografie reali per una tecnica di modellazione che usa fotografie reali per descrivere le proprietdescrivere le proprietàà geometriche e lgeometriche e l’’apparenza della apparenza della scenascena
E piE piùù appropriato parlare di appropriato parlare di ““ImageImage basedbased modelingmodeling and and
renderingrendering”” dato che i due aspetti dato che i due aspetti sono sostanzialmente inscindibilisono sostanzialmente inscindibili
Un esempio Un esempio èè la la fotogrammetriafotogrammetria, ,
una tecnologia in cui si usano una tecnologia in cui si usano misurazioni fatte usando 2 o pimisurazioni fatte usando 2 o piùùfotografie prese da diverse posifotografie prese da diverse posi--zionizioni per ricavare le coordinate per ricavare le coordinate 3D di un oggetto.3D di un oggetto.