Modelli a poligoni
This presentation is the property of its rightful owner.
Sponsored Links
1 / 50

Modelli a poligoni PowerPoint PPT Presentation


  • 117 Views
  • Uploaded on
  • Presentation posted in: General

Modelli a poligoni. Roberto Pirrone. Sommario. 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

Download Presentation

Modelli a poligoni

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Modelli a poligoni

Modelli a poligoni

Roberto Pirrone


Sommario

Sommario

  • 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

Mesh di poligoni

  • 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 hwdi rendering assumono di trattare con insiemi di poligoni proiettati ortograficamente sullo schermo.


Struttura di una mesh di poligoni

Struttura di una mesh di poligoni

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 poligoni1

Struttura di una mesh di poligoni


Struttura dati una mesh

Struttura dati una mesh

In genere si usano liste circolari gerarchiche per consentire l’accesso diretto ai singoli vertici o lati.


Struttura dati una mesh1

Struttura dati una mesh

  • 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 (texturecoordinates)

    • 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

Formati di file per mesh di poligoni

  • 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

File Wavefront OBJ


File wavefront obj1

File Wavefront OBJ

  • 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 obj2

File Wavefront OBJ

Riferimento a oggetti e/o gruppi di poligoni

Tipologie di illuminamento


File wavefront obj3

File Wavefront OBJ

Descrizione di materiali (eventualmente con texturemaps)


File stanford ply

File Stanford PLY

  • 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 littleendian o big endian


File stanford ply1

File Stanford PLY

  • Header

    ply

    format ascii 1.0

    commentplyis the magicnumber

    comment format can be alsobinary_little_endiancomment or binary_big_endian in place of ascii

    element

    property

    property

    element

    property

    end_header


File stanford ply2

File Stanford PLY

  • Header

    ply

    format ascii 1.0

    commentplyis the magicnumber

    comment format can be alsobinary_little_endiancomment or binary_big_endian in place of ascii

    element

    property

    property

    element

    property

    end_header


File stanford ply3

File Stanford PLY


File stanford ply4

File Stanford PLY

  • Definizione di un materiale

  • Per aggiungere il materiale ad ogni vertice aggiungere la seguente linea alla fine della definizione dell’elemento vertex:

    • propertymaterial_indexint


Generazione di mesh poligonali da dati laser

Generazione di mesh poligonali da dati laser

  • 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

Triangolazione di Delaunay

  • 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 delaunay1

Triangolazione di Delaunay

  • 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 delaunay2

Triangolazione di Delaunay

  • Una triangolazione di DelaunayDT(P) di un insieme di punti P∈Rnsi è 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

Flipalgorithm

  • 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 flipdel 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

Algoritmi per la Triangolazione di Delaunay di nuvole di punti mediante chiusure convesse

  • 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 convesse1

Algoritmi per la Triangolazione di Delaunay di nuvole di punti mediante chiusure convesse

  • 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

Generazione di mesh poligonali da funzioni analitiche

  • 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 tassellazionelat-long diventa onerosa e può dar luogo a una cattiva poligonizzazione nei punti ad elevata curvatura


Generazione di mesh poligonali da funzioni analitiche1

Generazione di mesh poligonali da funzioni analitiche


Generazione di mesh poligonali da funzioni analitiche2

Generazione di mesh poligonali da funzioni analitiche


Generazione di mesh poligonali da funzioni analitiche3

Generazione di mesh poligonali da funzioni analitiche

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 terminidi 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

Generazione di mesh poligonali da modelli sweep

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 sweep1

Generazione di mesh poligonali da modelli sweep

  • 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 transformationsurface

    • 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 sweep2

Generazione di mesh poligonali da modelli sweep

Problemi di approssimazioneplanare se sigeneralizza

ad unaqualunquecurvadirettrice

Problemi di orientamento locale

dellasezionetrasversale

Problemi di auto-intersezionedellasezionetrasversale


Generazione procedurale di mesh poligonali

Generazione procedurale di mesh poligonali

Fractalterrain: 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

Generazione di mesh poligonali da superfici parametriche

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 parametriche1

Generazione di mesh poligonali da superfici parametriche

Suddivisione uniforme o non uniforme per inseguire curvature locali


Generazione di mesh poligonali da superfici parametriche2

Generazione di mesh poligonali da superfici parametriche

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 parametriche3

Generazione di mesh poligonali da superfici parametriche

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 parametriche4

Generazione di mesh poligonali da superfici parametriche

R3=Q(0.5): la strutturadeinuovipunti di controllosiottieneapplicando

L’algoritmo di De Casteljau


Generazione di mesh poligonali da superfici parametriche5

Generazione di mesh poligonali da superfici parametriche

Criterio di planarità: minimizzare d1 e d2


Estrazione di iso superfici marching cubes

Estrazione di iso-superfici (marchingcubes)

  • 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

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

Marching cubes (3)

  • 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

Marchingcubes (4)

Indice ad 8 bit cheidentifica

la tipologia di attraversamento e puntaallatabelladegli edge numerati come in figura


Marching cubes 5

Marching cubes (5)

  • Calcolodellenormaliaiverticideitriangoli

    • Le normaliallasuperficiesonoesprimibili in termini del gradienteGfperché per f(i,j,k)=c si ha cheGf=0

    • Allorasicalcolanoigradienti con le differenze finite ad ognivertice del cubo e poi siinterpolanolineaementelungogli edge per trovarneilvaloreall’intersezione con f(i,j,k)=c.


Marching cubes 6

Marching cubes (6)

  • Tracciadell’algoritmo

    • Carica 4 slice in memoria

    • Calcola un cubo da due slice adiacenti

    • Comparaivalori di f(i,j,k) ad ognivertice con f (i,j,k)=c (luogogeometricodellaiso-superficie) e calcola un indice ad 8 bit cheindividua la modalità di attraversamento

    • Usal’indice per entrare in unatabelladegli edge al fine di determinaregli edge effettivamenteintersecati

    • Interpolalinearmenteilvalore di f lungogli edge intersecati per trovare le effettiveintersezionicioèiverticideitriangoli di output

    • Determina le normaliaivertici a partiredaivalori di quelleneivertici del cubochevengono interpolate linearmentelungogli edge

    • Dai come output itriangoligeneratidall’attraversamento del cubo con le loronormaliaivertici.


Esempi di elaborazioni di iso superfici

Esempi di elaborazioni di iso-superfici


Esempi di elaborazioni di iso superfici1

Esempi di elaborazioni di iso-superfici


Esempi di elaborazioni di iso superfici2

Esempi di elaborazioni di iso-superfici


Lod progressive mesh refinement

LOD – progressive meshrefinement


Lod progressive mesh refinement1

LOD – progressive meshrefinement

  • Criteri di collassamento

    • Soglia

    • Minimizzazione di funzionale energia


Lod progressive mesh refinement2

LOD – progressive meshrefinement


  • Login