11 ottobre 2012 Modelli a poligoni Roberto Pirrone.

Slides:



Advertisements
Presentazioni simili
L’ IPERBOLE.
Advertisements

Applicazioni progettuali di grafica computerizzata a.a. 2008/2009
I Poligoni.
Corso di Interazione Uomo-Macchina: Grafica (a.a ) Docente: Prof. Enrico Puppo Prerequisiti: –Interazione uomo-macchina: interfacce grafiche.
I Triangoli.
STEREOS: SOLIDO METRIA: MISURAZIONE
ELETTROMAGNETISMO APPLICATO ALL'INGEGNERIA ELETTRICA ED ENERGETICA
Algoritmi e Strutture Dati
Curve e Superfici Il mondo non è fatto di rette e poligoni.
Capitolo 13 Cammini minimi: Algoritmo di Floyd e Warshall Algoritmi e Strutture Dati.
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 prove.
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 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.
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 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.
Applicazioni progettuali di grafica computerizzata a.a. 2008/2009 Rendering grafico.
Considera un quadrato inscritto in una circonferenza di raggio r
Utilizzo di modelli 3D nella programmazione OpenGL Corso di Elementi di Grafica Digitale Anno accademico 2004/2005 Daniele Otti Università degli Studi.
1 Modelli di Illuminazione Daniele Marini. 2 Obiettivo Visualizzare scene cercando di simulare al meglio la realtà Interazione luce-materiali –Modellare.
1 Superfici nascoste Daniele Marini. 2 Ray casting adatto a CSG o superfici parametriche dipende dal punto di vista è una sorta di campionamento spaziale.
Smoothing Daniele Marini.
Infomatica Grafica a.a DICGIM – University of Palermo Dipartimento di Ingegneria Chimica, Gestionale, Informatica e Meccanica Environment Mapping.
Esempio di esecuzione dellalgoritmo di Prim 1 v1v1 v5v5 v2v2 v3v3 v4v U = {v 1 } X =Ø 1 v1v1 v5v5 v2v2 v3v3 v4v U = {v.
I POLIGONI E IN PARTICOLARE I TRIANGOLI..
14 giugno 2011 Rasterizzazione Prof. Roberto Pirrone.
4 aprile 2011 Modellazione Solida Prof. Roberto Pirrone.
I solidi.
I solidi.
Determinazione delle superfici visibili
Corso tecniche di rappresentazione dello spazio A.A. 2009/2010 docente Arch. Emilio Di Gristina 11.
Illuminamento e Shading
21 giugno 2011 Volume Rendering Prof. Roberto Pirrone.
Curve e superfici parametriche
Prof. Cerulli – Dott.ssa Gentili
Modelli di riflessione della luce
Effetti fotorealistici
Face Recognition Gessica Vagnoli.
ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA
Daniele Marini, Maurizio Rossi
1 Scan conversione di poligoni Daniele Marini. 2 Test interno-esterno Scan conversione di un poligono = decidere se pixel interno Test di intersezione:
Architettura di OGL e pipe-line Daniele Marini Corso Di Programmazione Grafica.
Corso di tecniche della modellazione digitale computer 3D A.A. 2010/2011 docente Arch. Emilio Di Gristina 00.
Superfici nascoste Daniele Marini.
Modelli di Illuminazione
Intersezioni e distanze
Intersezioni e distanze
Corso di Programmazione Grafica e Laboratorio Daniele Marini
Ombre e riflessioni in tempo reale Daniele Marini Parzialmente tratte de: Haines-M ö ller Corso di Programmazione Grafica aa2006/2007.
Architettura di OGL e pipe-line Daniele Marini Davide Gadia Davide Selmo Corso Di Programmazione Grafica aa2005/2006.
Ombre e riflessioni in tempo reale Daniele Marini Parzialmente tratte de: Haines-M ö ller Corso di Programmazione Grafica aa2005/2006.
Intersezioni e distanze Daniele Marini Corso di Programmazione Grafica per il Tempo Reale.
I POLIGONI.
I triangoli.
Triangoli Classificazione Proprietà triangoli equilateri
Sistemi Multimediali II Marco Tarini Università dell’Insubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione.
Geometria Solida Poliedri Prima parte.
Alcune esperienze di laboratorio sull’ottica geometrica
Simulazione Interattiva di Capelli Marta De Cinti Anno accademico 2005/2006 Università di Roma “La Sapienza” Relatore Prof. Marco Schaerf Correlatore Ing.
1 Smoothing Daniele Marini. 2 Calcoli sui vettori Vettore normale equazione del piano: ax+by+cz+d=0; si può anche scrivere come luogo: e p è un qualunque.
A.s Lezioni a cura del Prof.Giovanni Calò Le trasformazioni geometriche Un trasformazione geometrica t è una corrispondenza biunivoca che fa.
Le caratteristiche dei poligoni
Test di Fisica Soluzioni.
IL CERCHIO E LA CIRCONFERENZA.
PRESENTAZIONE DI GEOMETRIA SOLIDA
Transcript della presentazione:

11 ottobre 2012 Modelli a poligoni Roberto Pirrone

Sommario Struttura di una mesh di poligoni 11 ottobre 2012 Struttura di una mesh di poligoni Struttura dati Formati di file che specificano mesh di poligoni Generazione di mesh poligonali da modelli e dati Laser Modelli analitici Modelli sweep Generazione procedurale di mesh Superfici parametriche Volumi di dati Level Of Detail (LOD)

Mesh di poligoni 11 ottobre 2012 Le mesh di poligoni costituiscono una rappresentazione delle superfici di un modello per mezzo di una tassellazione di poligoni piani che approssimano la superficie stessa “pezzo a pezzo”. Poligoni quadrangolari o meglio triangolari (è assicurata la planarità) I vertici dei poligoni sono punti effettivi della superficie del modello Ottima rappresentazione per la macchina, ma poco orientata all’utente. Tutti gli algoritmi ed i dispositivi hw di rendering assumono di trattare con insiemi di poligoni proiettati ortograficamente sullo schermo.

Struttura di una mesh di poligoni 11 ottobre 2012 Da un punto di vista concettuale un oggetto viene decomposto nelle sue superfici che, campionate, sono approssimate a poligoni. I poligoni si intendono costituiti da lati che raccordano coppie di vertici.

Struttura di una mesh di poligoni 11 ottobre 2012

Struttura dati una mesh 11 ottobre 2012 In genere si usano liste circolari gerarchiche per consentire l’accesso diretto ai singoli vertici o lati.

Struttura dati una mesh 11 ottobre 2012 Ad ogni vertice/poligono sono associate informazioni utili al processo di modellazione e rendering Coordinate geometriche Componenti del vettore normale (ovvero della normale al piano del poligono insieme con i coefficienti dell’equazione del piano) Coordinate del vertice nello spazio delle texture (texture coordinates) Componenti cromatiche rispetto ai vari tipi di riflessione della luce (autoemissiva, ambiente, diffusa o speculare) descrizione del materiale

Formati di file per mesh di poligoni 11 ottobre 2012 Esistono diversi formati di file che consentono di gestire oggetti grafici in forma di mesh di poligoni secondo le informazioni già viste. Formati proprietari 3DS – 3D Studio Max DXF – AutoCAD IV – Open Inventor Formati aperti OBJ – Wavefront Technologies PLY – Stanford University

File Wavefront OBJ 11 ottobre 2012

File Wavefront OBJ Definizione facce: Riferimento a materiali Shading 11 ottobre 2012 Definizione facce: f v1 v2 v3 v4 ... f v1/vt1 v2/vt2 v3/vt3 ... f v1/vt1/vn1 v2/vt2/vn2 v3/vt3/vn3 ... f v1//vn1 v2//vn2 v3//vn3 ... Riferimento a materiali mtllib [external .mtl file name] ... Shading s 1 (ovvero s off per disabilitare)

File Wavefront OBJ Riferimento a oggetti e/o gruppi di poligoni 11 ottobre 2012 Riferimento a oggetti e/o gruppi di poligoni Tipologie di illuminamento

File Wavefront OBJ 11 ottobre 2012 Descrizione di materiali (eventualmente con texture maps)

File Stanford PLY Il formato PLY è stato definito da Greg Turk 11 ottobre 2012 Il formato PLY è stato definito da Greg Turk La struttura base prevede Header Vertex list Face list Altri elementi (ad es. materiali) Il formato usa i tipi del C per definire i dati Il file può essere ascii o binario little endian o big endian

File Stanford PLY Header ply format ascii 1.0 11 ottobre 2012 Header ply format ascii 1.0 comment ply is the magic number comment format can be also binary_little_endian comment or binary_big_endian in place of ascii element property … end_header

File Stanford PLY Header ply format ascii 1.0 11 ottobre 2012 Header ply format ascii 1.0 comment ply is the magic number comment format can be also binary_little_endian comment or binary_big_endian in place of ascii element property … end_header

File Stanford PLY 11 ottobre 2012

File Stanford PLY Definizione di un materiale 11 ottobre 2012 Definizione di un materiale Per aggiungere il materiale ad ogni vertice aggiungere la seguente linea alla fine della definizione dell’elemento vertex: property material_index int

Generazione di mesh poligonali da dati laser 11 ottobre 2012 L’approccio più comune è l’algoritmo di skinning I dati acquisiti giacciono su piani paralleli di scansione Si crea una striscia di triangoli connettendo a zig-zag i punti contigui che giacciono su due piani adiacenti

Triangolazione di Delaunay 11 ottobre 2012 E’ l’insieme di triangoli che si ottiene circuitando un insieme di punti che definiscono una tassellazione di Voronoi che chiameremo punti seme In una regione di Voronoi è costituita da tutti i punti del piano che sono i “più vicini” al punto di seme della regione stessa rispetto a qualunque altro punto di seme

Triangolazione di Delaunay 11 ottobre 2012 I confini della regione sono gli assi dei segmenti che congiungono i semi Tali segmenti sono i lati dei triangoli cercati La triangolazione di Delaunay rappresenta il grafo duale della tassellazione di Voronoi

Triangolazione di Delaunay 11 ottobre 2012 Una triangolazione di Delaunay DT(P) di un insieme di punti P∈Rn si è tale per cui non ci sono punti in P che siano interni all’ipersfera circoscritta a qualunque simplesso in DT(P) In due dimensioni circonferenze e triangoli In tre dimensioni sfere e tetraedri

Flip algorithm 11 ottobre 2012 Criterio per la verifica che una triangolazione sia una DT La somma degli angoli opposti ad un lato comune di due triangoli adiacenti deve essere <180° Nel caso non sia così si esegue il flip del lato comune Si elimina il lato comune e si sostituisce con quello che unisce gli altri due vertici; si può provare che si ottiene una DT

Algoritmi per la Triangolazione di Delaunay di nuvole di punti mediante chiusure convesse 11 ottobre 2012 Algoritmo Incrementale Ripeti per ogni punto della nuvola Aggiungi il punto alla chiusura convessa esistente Se il punto è interno all’attuale chiusura convessa non far nulla Altrimenti Cancella tutti i triangoli che il punto “può vedere” Crea la piramide ottenuta connettendo il nuovo punto ai punti rimasti dei triangoli cancellati nella vecchia chiusura convessa Per stabilire se un punto è interno o esterno a un triangolo ovvero se è visibile da questo si usa il calcolo della normale positiva al triangolo circuitandone i vertici in senso antiorario.

Algoritmi per la Triangolazione di Delaunay di nuvole di punti mediante chiusure convesse 11 ottobre 2012 Algoritmo divide-and-conquer Calcola ricorsivamente la chiusura convessa delle due metà della nuvola Esegui la circuitazione delle due chiusure convesse per trovare la tangente comune inferiore o superiore (segmento che connette due vertici nelle chiusure convesse e totalmente esterno ad esse) Trova il terzo vertice adiacente ad uno dei due estremi della tangente e chiudi un triangolo Ripeti secondo uno schema di skinning per chiudere tutto il cilindro esterno che raccorda le due chiusure convesse ottenendo la chiusura convessa finale

Generazione di mesh poligonali da funzioni analitiche 11 ottobre 2012 Scansione latitudine-longitudine Si generano quadrangoli che poi vengono trasformati in triangoli suddividendoli attraverso le diagonali Problemi non corrispondenza di archi di curva uguali a passi angolari uguali in lat-long In caso di forme soggette a deformazioni globali (flessione, assottigliamento, torsione) la tassellazione lat-long diventa onerosa e può dar luogo a una cattiva poligonizzazione nei punti ad elevata curvatura

Generazione di mesh poligonali da funzioni analitiche 11 ottobre 2012

Generazione di mesh poligonali da funzioni analitiche 11 ottobre 2012

Generazione di mesh poligonali da funzioni analitiche 11 ottobre 2012 Parametrizzazione uniforme: l’insieme dei punti campionati si ottiene proiettando i punti di campionamento di una sfera, i quali sono uniformemente distribuiti sia in termini angolari sia in termini di spaziatura lungo la superficie, attraverso un opportuno fattore di scala variabile punto a punto e che deve essere stimato in ogni punto.

Generazione di mesh poligonali da modelli sweep 11 ottobre 2012 E’ possibile ricondurre lo sweep ad una operazione di estrusione di una sezione che viene deformata ad ogni passo secondo la legge imposta dal profilo desiderato Ad ogni passo di estrusione viene generata un’approssimazione lineare del profilo da cui si ricavano i poligoni

Generazione di mesh poligonali da modelli sweep 11 ottobre 2012 Una generalizzazione del metodo precedente è quella di far scorrere una sezione trasversale appoggiandola ad una coppia di “curve binario” che, con la loro distanza variabile, ne definiscono ad ogni passo la dimensione di scala. Affine transformation surface Ad ogni passo lungo z (direzione di estrusione) la sezione trasversale definita sul piano (x,y) subisce una trasformazione affine che la deforma. Non c’è una curva direttrice, ma i parametri di trasformazione possono essere controllati da curve parametriche. La natura affine della trasformazione consente sempre l’approssimazione del profilo superficiale mediante poligoni piani.

Generazione di mesh poligonali da modelli sweep 11 ottobre 2012 Problemi di approssimazione planare se si generalizza ad una qualunque curva direttrice Problemi di orientamento locale della sezione trasversale Problemi di auto-intersezione della sezione trasversale

Generazione procedurale di mesh poligonali 11 ottobre 2012 Fractal terrain: generazione di modelli di rilievi del suolo usando la geometria frattale cioè l’autosimilarità di una forma con sé stessa a diverse scale di osservazione. Il modello a poligoni originale viene decomposto iterativamente per bisezione dei lati. Ad ogni nuovo punto generato si aggiunge una perturbazione statistica della quota originale lungo la normale al lato.

Generazione di mesh poligonali da superfici parametriche 11 ottobre 2012 Suddivisione ricorsiva delle patch in porzioni più piccole fino a soddisfare un criterio di “planarità” per il quale l’approssimazione poligonale della patch risulta accettabile.

Generazione di mesh poligonali da superfici parametriche 11 ottobre 2012 Suddivisione uniforme o non uniforme per inseguire curvature locali

Generazione di mesh poligonali da superfici parametriche 11 ottobre 2012 La suddivisione non uniforme può creare artefatti dovuti allo “spezzarsi” della mesh in corrispondenza di poligoni con risoluzione diversa. Gli eventuali “buchi” andranno circuitati per generare nuovi poligoni.

Generazione di mesh poligonali da superfici parametriche 11 ottobre 2012 La suddivisione delle patch si riconduce ad una approssimazione delle curve a u e v costante mediante poligonali aperte.

Generazione di mesh poligonali da superfici parametriche 11 ottobre 2012 R3=Q(0.5): la struttura dei nuovi punti di controllo si ottiene applicando L’algoritmo di De Casteljau

Generazione di mesh poligonali da superfici parametriche 11 ottobre 2012 Criterio di planarità: minimizzare d1 e d2

Estrazione di iso-superfici (marching cubes) 11 ottobre 2012 Lorenson e Cline (1987) Questo tipo di approccio è utilizzato soprattutto per visualizzazione o per costruire delle realtà virtuali di campi operatori e non per diagnostica. Si tratta di determinare come una iso-superficie f(i,j,k)=c, rappresentata mediante poligoni, attraversa il singolo voxel.

Marching cubes (2) Ogni cubo è costruito connettendo otto pixel di due slice contigue. Per cui si conosce il valore di f(i,j,k) ad ogni vertice del cubo.

Marching cubes (3) Ci sono 256 (28) possibilità di attraversamento 11 ottobre 2012 Ci sono 256 (28) possibilità di attraversamento 8 vertici che possono essere dentro (1) o fuori (0) dalla superficie Mediante considerazioni di simmetria, le possibilità di attraversamento si riducono a 14 più il caso nullo con tutti i vertici esterni. Ad ogni vertice di ogni voxel è assegnato un valore in termini dell’informazione rappresentata dal volume: la iso-superficie rappresenta tutti i punti caratterizzati da un unico valore. L’algoritmo “marcia” da un voxel (cubo) all’altro e: Individua la modalità di attraversamento (vertici del voxel interni ed esterni alla superficie) Calcola l’effettiva posizione dei poligoni nel voxel per mezzo di una interpolazione lineare sugli edge intersecati.

Marching cubes (4) Indice ad 8 bit che identifica 11 ottobre 2012 Indice ad 8 bit che identifica la tipologia di attraversamento e punta alla tabella degli edge numerati come in figura

Marching cubes (5) Calcolo delle normali ai vertici dei triangoli 11 ottobre 2012 Calcolo delle normali ai vertici dei triangoli Le normali alla superficie sono esprimibili in termini del gradiente Gf perché per f(i,j,k)=c si ha che Gf=0 Allora si calcolano i gradienti con le differenze finite ad ogni vertice del cubo e poi si interpolano lineaemente lungo gli edge per trovarne il valore all’intersezione con f(i,j,k)=c.

Marching cubes (6) Traccia dell’algoritmo Carica 4 slice in memoria 11 ottobre 2012 Traccia dell’algoritmo Carica 4 slice in memoria Calcola un cubo da due slice adiacenti Compara i valori di f(i,j,k) ad ogni vertice con f (i,j,k)=c (luogo geometrico della iso-superficie) e calcola un indice ad 8 bit che individua la modalità di attraversamento Usa l’indice per entrare in una tabella degli edge al fine di determinare gli edge effettivamente intersecati Interpola linearmente il valore di f lungo gli edge intersecati per trovare le effettive intersezioni cioè i vertici dei triangoli di output Determina le normali ai vertici a partire dai valori di quelle nei vertici del cubo che vengono interpolate linearmente lungo gli edge Dai come output i triangoli generati dall’attraversamento del cubo con le loro normali ai vertici.

Esempi di elaborazioni di iso-superfici 11 ottobre 2012

Esempi di elaborazioni di iso-superfici 11 ottobre 2012

Esempi di elaborazioni di iso-superfici 11 ottobre 2012

LOD – progressive mesh refinement 11 ottobre 2012

LOD – progressive mesh refinement 11 ottobre 2012 Criteri di collassamento Soglia Minimizzazione di funzionale energia

LOD – progressive mesh refinement 11 ottobre 2012