Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2006/07 Lezione.

Slides:



Advertisements
Presentazioni simili
Laboratorio di Linguaggi lezione I: "Hello, world!" Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso.
Advertisements

Corso di Percezione Robotica (PRo) A. A. 99/00 B
1 la Torre Berardino Force rendering & Collision detection Dipartimento di Ingegneria dellInformazione Siena Ore F1F1 F2F2.
Curve e Superfici Il mondo non è fatto di rette e poligoni.
Esame di Elementi di Grafica Digitale Prof. Matjaz Hmeljak Marco Bacer 12 gennaio 2009.
Sistemi Multimediali II Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione.
Sistemi Multimediali II Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione.
Laboratorio di Linguaggi lezione IV: tipi definiti dallutente Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di.
Sistemi Multimediali II Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 prove.
Laboratorio di Linguaggi lezione VI: puntatori 2/3 Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso.
Laboratorio di Linguaggi lezione I: "Hello, world!" Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso.
Sistemi Multimediali II Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione.
Laboratorio di Linguaggi lezione IX Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso di Laurea in.
Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2006/07 Lezione.
Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2005/06 prove generali.
Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2006/07 Lezione.
Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2006/07 Lezione.
Laboratorio di Linguaggi lezione V Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso di Laurea in.
Sistemi Multimediali II Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione.
Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2006/07 Lezione.
Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2006/07 Lezione.
Sistemi Multimediali II Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione.
Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione.
Laboratorio di Linguaggi lezione VII: puntatori 3/3 Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso.
Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2006/07 Lezione.
Laboratorio di Linguaggi P R I M O C O M P I T I N O Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese.
Laboratorio di Linguaggi lezione IX: Dentro le Librerie Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese.
Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2006/07 Lezione.
Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2005/06 Lezione.
Sistemi Multimediali II Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione.
Computer Graphics Marco Tarini Lezione 7: rasterizzazione la fabbrica dei frammenti Università dellInsubria Facoltà di Scienze MFN - Varese Corso di Laurea.
Sistemi Multimediali II Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione.
Laboratorio di Linguaggi lezione IV Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso di Laurea in.
Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2006/07 Lezione.
Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2005/06 Lezione.
Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione.
Laboratorio di Linguaggi lezione III Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso di Laurea.
Costruzione di Interfacce - Paolo Cignoni1 Costruzione di Interfacce Lezione 30 MMeditor e collision detection
Laboratorio di Linguaggi lezione XI: I/O Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso di Laurea.
Laboratorio di Linguaggi lezione IX: tipi ricorsivi Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso.
Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso di Laurea in Informatica Anno Accademico 2007/08.
Sistemi Multimediali II Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione.
Scene Modelling, Recognition and Tracking
Applicazioni progettuali di grafica computerizzata a.a. 2008/2009 Rendering grafico.
Utilizzo di modelli 3D nella programmazione OpenGL Corso di Elementi di Grafica Digitale Anno accademico 2004/2005 Daniele Otti Università degli Studi.
1 Superfici nascoste Daniele Marini. 2 Ray casting adatto a CSG o superfici parametriche dipende dal punto di vista è una sorta di campionamento spaziale.
11 ottobre 2012 Modelli a poligoni Roberto Pirrone.
Sistemi Multimediali II Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione.
Simulazione Anatomica di Muscoli Facciali per Volti Virtuali Generici
Daniele Marini Con contributi di Maurizio Rossi
00 corso di tecniche della modellazione digitale computer 3D A.A. 2010/2011 docente Arch. Emilio Di Gristina.
Corso di tecniche della modellazione digitale computer 3D A.A. 2010/2011 docente Arch. Emilio Di Gristina 00.
Superfici nascoste Daniele Marini.
1 Ottimizzazione della scena: culling (decimazione) Daniele Marini.
Intersezioni e distanze
Intersezioni e distanze
Corso di Programmazione Grafica e Laboratorio Daniele Marini
1 Ottimizzazione della scena Daniele Marini. 2 Esigenze del RT rendering maggiori frame /sec risoluzione più alta oggetti più accurati e realistici.
Ottimizzazione della scena Daniele Marini. Esigenze del RT rendering maggiori frame /sec risoluzione più alta oggetti più accurati e realistici 2 Programmazione.
1 Ottimizzazione della scena Daniele Marini. 2 Esigenze del RT rendering maggiori frame /sec risoluzione più alta oggetti più accurati e realistici.
Intersezioni e distanze Daniele Marini Corso di Programmazione Grafica per il Tempo Reale.
Ottimizzazione della scena: culling (decimazione) Daniele Marini.
Ottimizzazione della scena: culling (decimazione) Daniele Marini Corso di Programmazione Grafica per il Tempo Reale.
Ottimizzazione della scena Daniele Marini Corso di Programmazione Grafica per il Tempo Reale.
Computer Graphics Marco Tarini Università dell’Insubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2006/07 Lezione.
Computer Graphics Marco Tarini Università dell’Insubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2005/06 Lezione.
Sistemi Multimediali II Marco Tarini Università dell’Insubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione.
Simulazione Interattiva di Capelli Marta De Cinti Anno accademico 2005/2006 Università di Roma “La Sapienza” Relatore Prof. Marco Schaerf Correlatore Ing.
Computer Graphics Marco Tarini Università dell’Insubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2005/06 Lezione.
UNITA’ OPERATIVA DISI UNIVERSITA’ DI GENOVA Progetto MURST 5% Multimedialita’
Transcript della presentazione:

Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2006/07 Lezione 13: meshes

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a Mesh triangolare (o mesh simpliciale) Un insieme di triangoli adiacenti facce vertici spigoli (o edges)

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a Altre mesh Mesh bidimensionali –Mesh di triangoli (o tri-mesh, o simpliciali) –Mesh di quadrilateri (o quad-mesh) –Mesh miste (quad e tri) Spesso, mesh prevalemtemente di quads –Mesh di poligoni Mesh volumetriche –Mesh tetraedrali (o simpliciali 3D)

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a Caratteristiche topologiche di una mesh Two Manifold ("varietà due") oppure no – in generale: two-manifold = localmente è una superficie – per le mesh: two-manifold = ogni edge è condiviso da al max due faccie two manifold = bene non two manifold = male (molti algoritmi su mesh necessitano che sia two-manifold) NO SI

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a Caratteristiche topologiche di una mesh Chiusa o aperta –se chiusa, ogni edge è condiviso proprio due faccie –se aperta, alcuni edge sono di bordo

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a Caratteristiche topologiche di una mesh Orientabile, non orientabile –è possibile assegnare un orientamento ad ogni faccia coerentemente? –orientabile = normali coerenti! senso opposto, edge coerente A BC D

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a Caratteristiche topologiche di una mesh Orientabile, non orientabile –esempi di mesh non orientabili: mesh non two-manifold e... Nastro di Moebius (non orientabile, aperta) Bottiglia di Klein (non orientabile, chiusa)

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a Come definisco una mesh? Una mesh è un insieme di triangoli adiacenti Strutture dati? Modo diretto: –un vettore di triangoli –e per ogni triangolo tre vertici –e per ogni vertice tre coordinate Poco efficiente –replicazione dati –oneroso fare updates

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a Come definisco una mesh? Modo indexed –Lista ordinata di vertici per ogni vertice la posizione –Lista ordinata di facce per ogni faccia, 3 indici di vertici –Se serve: lista ordinata di edges per ogni edge, 2 indici ai vertici

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a E gli attributi? Tipicamente definiti: –per vertice un attributo nella struttura di ogni vertice –per faccia un attributo nella struttura di ogni faccia –per wedge (vertice di faccia) tre attributi nella struttura di ogni faccia (caso più generico!) –per edge (raro) Attributi più comuni: –colore –coordinate texture –normali...

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a Formati files per mesh (una Torre di Babele!) –3DS - 3D Studio Max file format –MA, MB – Maya file format –3DX – Rinoceros file format –BLEND – Blender file format –DAE – Collada file format –OBJ – Another file format for 3D objects –X – Direct X object –BYU - Movie BYU file format –DEM - Digital Elevation Models –DXF – (exchange format used by Autodesk's AutoCAD) –FIG - Used by REND386/AVRIL –FLT - MulitGen Inc.'s OpenFlight format –HDF - Hierarchical Data Format –IGES - Initial Graphics Exchange Specification –IV - Open Inventor File Format Info –LWO, LWB & LWS - Lightwave 3D file formats –MAZ - Used by Division's dVS/dVISE –MGF - Materials and Geometry Format –MSDL - Manchester Scene Description Language –3DML – by Flatland inc. –C4D – Cinema 4D file format –SLDPTR – SolidWork "part" –WINGS – Wings3D object –NFF - Used by Sense8's WorldToolKit –OBJ - Wavefront Object Files –OFF - A general 3D mesh Object File Format –OOGL - Object Oriented Graphics Library –PLG - Used by REND386/AVRIL –POV - Persistence of Vision ray-tracer –QD3D - Apple's QuickDraw 3D Metafile format –TDDD - for Imagine & Turbo Silver ray-tracers –NFF & ENFF - (Extended) Neutral File Format –VIZ - Used by Division's dVS/dVISE –VRML - Virtual Reality Modeling Language –VRML97 - ISO Specification di VRML –X3D – successore di VRML –PLY – Used by Cyberware –DICOM – Dalla casa omonima –Renderman – per l'omonimo visualizzatore –RWX – RenderWare Object –Z3D – ZModeler File format –etc, etc, etc...

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a Esempio di file format : formato PLY E' un formato digitale per mesh superficiali Puo' essere in binario, o in ASCII (testo) –binario: più compatto e veloce da leggere –ascii: umanamente leggibile con un editore di testo In ogni caso, comincia con un header in ASCII

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a cubo.ply Esempio di file format : formato PLY Esempio: ply format ascii 1.0 comment proprio un cubetto element vertex 8 property float x property float y property float z element face 12 property list uchar int vertex_indices end_header

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a LetteraL.off Esempio di file format : formato OFF Esempio: OFF # vertici # facce # edges x,y,z 2ndo vert prima faccia: 4 vertici: con indici 3, 2, 1 e 0 indice 0 indice 3 indice 2 indice 1

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a Mesh: task comuni Data una mesh: –magari appena caricata trovare il AABB (axis aligned bounding box) –utile ad esempio per translare e scalare l'oggetto opportunamente –come si fa? (si itera sui vertici: trovare il max e il min di tutte le x, le y e le z)

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a Mesh: strutture per la navigazione Navigazione ("traversal") di mesh Strutture dati apposite –puntatori (o indici) da ogni elemento ad ogni elemento adiacente o incidente –efficienza in tempo contro efficienza in spazio F V E Esempi: struttura FV: puntatori da ogni faccia ai vertici incidenti struttura FF: puntatori da ogni faccia alle facce adiacenti struttura EF: da ogni edge alle due faccie adiacenti

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a Mesh: strutture per la navigazione Esempio: struttura VF: –per ogni vertice, la lista delle facci incidenti –(lunghezza variabile! Poco efficiente! Come si fa?) F V E Altre strutture di navigazione utili (oltre a F,V,E): W: Wedge: (angolo di faccia) H: Half-Wedge: ("mezzo" angolo di faccia) (molto potente) (operazioni...)

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a Mesh: task comuni Data una mesh: –magari appena caricata trovare le normali per faccia trovare le normali per vertice –come si fa? –che struttura serve? (FV? VF?) BASTA LA FV! 1 azzerare tutte le norm x vertice 2 iterare su ogni faccia: - trovare normale x faccia (normalizzata) - aggiungerla a normale dei tre vertici incidenti (FV) 3 iterare su ogni vertice: normalizzare normale x vertice

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a Mesh: task più difficili Bounding sphere Calcolo di caratteristiche –Geometriche (curvatura per vertice, curve geodesiche...) –Topologiche (chiusura, genus, edge di bordo...) Detection e chiusura buchi Date due mesh, calcolare la "distanza" –in totale –punto per punto Rimozione rumore (geometrico, topologico) –o enhancing del segnale ad alta frequenza... –un pò come come image processing (infatti si parla di "geometry processing")...

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a Task più difficili Misure di distanza –Date due mesh A e B, calcolare la loro "distanza" Es. la metrica Hausdorff di distanza fra mesh –Calcolare la distanza: in totale punto per punto

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a Mesh: task più difficili Stripification Parametrizzazione Semplificazione automatica –e precalcolo di livelli di dettaglio Detail recovery...

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a Task più difficili Stripification –suddividere i triangoli in triangle strips più lunghe possibile –(perché?)

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a Task più difficili Parametrizzazione –assegnare una coppia di coordinate texutre ad ogni wedge –ci sono seams replicare i vertici memorizzale le text coord per wedge u v

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a Task più difficili automaticamente mesh semplificata 2K triangles mesh originale 500K triangoli Semplificazione automatica parametri: –un errore massimo –o un numero di facce obiettivo

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a Semplificazione automatica p e r f o r m a n c e q u a l i t y

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a Semplificazione automatica LOD 1 LOD 2LOD 3LOD 4 Una piramide di Livelli di Dettaglio usare quando visto da vicino usare quando visto da lontano

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a Semplificazione automatica Molte tecniche diverse –Errore massimo introdotto: misurato e/o limitato oppure no –Topologia: mantenuta oppure no –Streaming Possibile Oppure no –...

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a Semplificazione automatica Strategie completamente diverse –Approcci iterativi repeat –compi l'azione di semplificazione atomica meno costosa (in termini di errore aggiunto) –aggiorna costi until (obiettivo raggiunto) –es: numero faccie, errore edge collapse

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a Semplificazione automatica Strategie completamente diverse –Vertex clustering: dividi i vertici originali in una griglia regolare collassa in un solo vertice tutti i vertici nella stessa casella togli i triangoli che hanno solo 1 o 2 vertici diversi –Approssimazione dipende da dimensione griglia

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a Semplificazione automatica Strategie completamente diverse –Fitting di piani sostituire molte facce con poligoni planari quando i loro vertici sono quasi coplanari Cohen-Steiner, Alliez, Desbrun (SIGGR04)

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a Detail preservation (o texture for geometry) Idea: –semplificare una mesh –sintetizzare una tessitura –per ripristinare il dettaglio perso durante la semplificazione

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a 500mila triangoli 2mila triangoli semplificazione automatica sempre duemila triangoli, ma con texture mapping rendering TESSITURA fatta apposta (es. BumpMap) detail recover

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a simplified 2K triangles originale 500K triangles semplificato ma con tessitura 2K triangles