Computer Graphics - PowerPoint PPT Presentation

1 / 33
About This Presentation
Title:

Computer Graphics

Description:

Computer Graphics Lezione 13: meshes Universit dell Insubria Facolt di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2006/07 – PowerPoint PPT presentation

Number of Views:28
Avg rating:3.0/5.0
Slides: 34
Provided by: vcgIstiC
Category:

less

Transcript and Presenter's Notes

Title: Computer Graphics


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

2
Mesh triangolare (o mesh simpliciale)
  • Un insieme di triangoli adiacenti

3
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)

4
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
5
Caratteristiche topologiche di una mesh
  • Chiusa o aperta
  • se chiusa, ogni edge è condiviso proprio due
    faccie
  • se aperta, alcuni edge sono di bordo

6
Caratteristiche topologiche di una mesh
  • Orientabile, non orientabile
  • è possibile assegnare un orientamento ad ogni
    faccia coerentemente?
  • orientabile normali coerenti!

A
1
1
3
D
2
3
2
B
C
senso opposto, edge coerente
7
Caratteristiche topologiche di una mesh
  • Orientabile, non orientabile
  • esempi di mesh non orientabili
  • mesh non two-manifold
  • e...

8
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

9
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

10
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...

11
Formati files per mesh (una Torre di Babele!)
  • 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
  • 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

12
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

13
Esempio di file format formato PLY
  • Esempio

cubo.ply
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_head
er
14
Esempio di file format formato OFF
  • Esempio

LetteraL.off
1 5 10 5 14 3 2 1 04 5 4 3 04 6 7 8 94 6 9
10 114 0 1 7 64 1 2 8 74 2 3 9 84 3 4 10 94
4 5 11 104 5 0 6 11
OFF12 10 400 0 03 0 03 1 01 1 01 5 00 5
00 0 13 0 13 1 11 1 1
15
Mesh task comuni
  • Data una mesh
  • magari appena caricata
  • trovare il AABB (axis aligned bounding box)
  • utile ad esempioper translare e
    scalarel'oggetto opportunamente
  • come si fa?
  • (si itera sui vertici trovare il max e il
    min di tutte le x, le y e le z)

16
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

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
F
V
E
17
Mesh strutture per la navigazione
  • Esempiostruttura VF
  • per ogni vertice, la lista delle facci incidenti
  • (lunghezza variabile! Poco efficiente! Come si
    fa?)

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...)
F
V
E
18
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
19
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")
  • ...

20
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

21
Mesh task più difficili
  • Stripification
  • Parametrizzazione
  • Semplificazione automatica
  • e precalcolo di livelli di dettaglio
  • Detail recovery
  • ...

22
Task più difficili
  • Stripification
  • suddividere i triangoli in triangle strips
  • più lunghe possibile
  • (perché?)

23
Task più difficili
  • Parametrizzazione
  • assegnare una coppia di coordinate texutread
    ogni wedge
  • ci sono seams
  • replicare i vertici
  • memorizzale le text coord per wedge

v
u
24
Task più difficili
  • Semplificazione automatica
  • parametri
  • un errore massimo
  • o un numero di facce obiettivo

automaticamente
mesh originale 500K triangoli
mesh semplificata 2K triangles
25
Semplificazione automatica
p e r f o r m a n c e
q u a l i t y
26
Semplificazione automatica
Una piramide di Livelli di Dettaglio
LOD 2
LOD 3
LOD 4
LOD 1
usare quando visto da lontano
usare quando visto da vicino
27
Semplificazione automatica
  • Molte tecniche diverse
  • Errore massimo introdotto
  • misurato e/o limitato
  • oppure no
  • Topologia
  • mantenuta
  • oppure no
  • Streaming
  • Possibile
  • Oppure no
  • ...

28
Semplificazione automatica
  • Strategie completamente diverse
  • Approcci iterativi
  • repeat
  • compi l'azione di semplificazioneatomica meno
    costosa (in termini di errore aggiunto)
  • aggiorna costi
  • until (obiettivo raggiunto)
  • es numero faccie,errore

edge collapse
29
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

30
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)
31
Detail preservation(o texture for geometry)
  • Idea
  • semplificare una mesh
  • sintetizzare una tessitura
  • per ripristinare il dettaglio perso durante la
    semplificazione

32
500mila triangoli
semplificazioneautomatica
2mila triangoli
33
simplified 2K triangles
originale 500K triangles
Write a Comment
User Comments (0)
About PowerShow.com