Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoPepe Marinelli Modificato 10 anni fa
1
Sistemi Multimediali II Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione 8: meshes
2
M a r c o T a r i n i S i s t e m i M u l t i m e d i a l i I I 2 0 0 4 / 0 5 U n i v e r s i t à d e l l I n s u b r i a - 2/40 Mesh triangolare (o mesh simpliciale) Una mesh è un insieme di triangoli adiacenti facce vertici spigoli (o edges)
3
M a r c o T a r i n i S i s t e m i M u l t i m e d i a l i I I 2 0 0 4 / 0 5 U n i v e r s i t à d e l l I n s u b r i a - 3/40 Caratteristiche topologiche di una mesh Two Manifold ("varietà due") o no – se si ogni edge è condiviso da al max due faccie two manifold = bene non two manifold = male molti algoritmi su mesh richiedono che la mesh sia two- manifold NO SI
4
M a r c o T a r i n i S i s t e m i M u l t i m e d i a l i I I 2 0 0 4 / 0 5 U n i v e r s i t à d e l l I n s u b r i a - 4/40 Caratteristiche topologiche di una mesh Chiusa o aperta –se chiusa, ogni edge è condiviso proprio due faccie
5
M a r c o T a r i n i S i s t e m i M u l t i m e d i a l i I I 2 0 0 4 / 0 5 U n i v e r s i t à d e l l I n s u b r i a - 5/40 Caratteristiche topologiche di una mesh Orientabile, non orientabile –è possibile assegnare un orientamento ad ogni faccia coerentemente? –orientabile = normali coerenti! 1 2 3 1 2 3 senso opposto, edge coerente
6
M a r c o T a r i n i S i s t e m i M u l t i m e d i a l i I I 2 0 0 4 / 0 5 U n i v e r s i t à d e l l I n s u b r i a - 6/40 Come definisco una mesh? Una mesh è un insieme di triangoli adiacenti Come la definisco? Modo diretto: –un vettore di triangoli –e per ogni triangolo tre vertici –e per ogni vertice tre coordinate Piuttosto poco efficiente
7
M a r c o T a r i n i S i s t e m i M u l t i m e d i a l i I I 2 0 0 4 / 0 5 U n i v e r s i t à d e l l I n s u b r i a - 7/40 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
8
M a r c o T a r i n i S i s t e m i M u l t i m e d i a l i I I 2 0 0 4 / 0 5 U n i v e r s i t à d e l l I n s u b r i a - 8/40 E gli attributi? Posso definirli: –per vertice scrivo un attributo dopo ogni vertice –per faccia scrivo un attributo dopo ogni faccia –per wedge (vertice di faccia) scrivo tre attributi dopo ogni faccia Attributi più comuni: –colore –coordinate texture
9
M a r c o T a r i n i S i s t e m i M u l t i m e d i a l i I I 2 0 0 4 / 0 5 U n i v e r s i t à d e l l I n s u b r i a - 9/40 Esempio: formato PLY E' un formato digitale per mesh 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
10
M a r c o T a r i n i S i s t e m i M u l t i m e d i a l i I I 2 0 0 4 / 0 5 U n i v e r s i t à d e l l I n s u b r i a - 10/40 cubo.ply Esempio: 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
11
M a r c o T a r i n i S i s t e m i M u l t i m e d i a l i I I 2 0 0 4 / 0 5 U n i v e r s i t à d e l l I n s u b r i a - 11/40 LetteraL.ply Esempio: formato OFF Esempio: 1 5 1 0 5 1 4 3 2 1 0 4 5 4 3 0 4 6 7 8 9 4 6 9 10 11 4 0 1 7 6 4 1 2 8 7 4 2 3 9 8 4 3 4 10 9 4 4 5 11 10 4 5 0 6 11 OFF 12 10 40 0 0 0 3 0 0 3 1 0 1 1 0 1 5 0 0 5 0 0 0 1 3 0 1 3 1 1 1 1 1 # 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
12
M a r c o T a r i n i S i s t e m i M u l t i m e d i a l i I I 2 0 0 4 / 0 5 U n i v e r s i t à d e l l I n s u b r i a - 12/40 Mesh: task comuni Data una mesh: –magari appena caricata trovare il 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)
13
M a r c o T a r i n i S i s t e m i M u l t i m e d i a l i I I 2 0 0 4 / 0 5 U n i v e r s i t à d e l l I n s u b r i a - 13/40 Mesh: task comuni Data una mesh: –magari appena caricata trovare le normali per vertice –come si fa? 1 azzerare tutte le norm x vertice 2 iterare ogni faccia: trovare normale normalizzare normale aggiungere normale al vertice 3 iterare ogni vertice: normalizzarlo
14
M a r c o T a r i n i S i s t e m i M u l t i m e d i a l i I I 2 0 0 4 / 0 5 U n i v e r s i t à d e l l I n s u b r i a - 14/40 Task più difficili Bounding sphere Stripification Parametrizzazione Simplificazione automatica Detail recovery...
15
M a r c o T a r i n i S i s t e m i M u l t i m e d i a l i I I 2 0 0 4 / 0 5 U n i v e r s i t à d e l l I n s u b r i a - 15/40 Task più difficili Stripification –suddividere i triangoli in triangle strips più lunghe possibile –perche?
16
M a r c o T a r i n i S i s t e m i M u l t i m e d i a l i I I 2 0 0 4 / 0 5 U n i v e r s i t à d e l l I n s u b r i a - 16/40 Task più difficili Parametrizzazione –assegnare una coppia di coordinate texutre ad ogni vertice –ci sono seams replicare i vertici memorizzale le text coord per wedge u v
17
M a r c o T a r i n i S i s t e m i M u l t i m e d i a l i I I 2 0 0 4 / 0 5 U n i v e r s i t à d e l l I n s u b r i a - 17/40 Task più difficili automaticamente mesh semplificata 2K triangles mesh originale 500K triangoli Semplificazione automatica parametri: –un errore massimo –o un numero di facce obiettivo
18
M a r c o T a r i n i S i s t e m i M u l t i m e d i a l i I I 2 0 0 4 / 0 5 U n i v e r s i t à d e l l I n s u b r i a - 18/40 Semplificazione automatica p e r f o r m a n c e q u a l i t y
19
M a r c o T a r i n i S i s t e m i M u l t i m e d i a l i I I 2 0 0 4 / 0 5 U n i v e r s i t à d e l l I n s u b r i a - 19/40 Semplificazione automatica LOD 1 LOD 2LOD 3LOD 4 Una piramide di Livelli di Dettaglio usare quando visto da vicino usare quando visto da lontano
20
M a r c o T a r i n i S i s t e m i M u l t i m e d i a l i I I 2 0 0 4 / 0 5 U n i v e r s i t à d e l l I n s u b r i a - 20/40 Detail preservation (o texture for geometry) Idea: –sintetizzare una tessitura –per ripristinare il dettaglio perso durante la semplificazione
21
M a r c o T a r i n i S i s t e m i M u l t i m e d i a l i I I 2 0 0 4 / 0 5 U n i v e r s i t à d e l l I n s u b r i a - 21/40 500mila triangoli 2mila triangoli semplificazione automatica sempre duemila triangoli, ma con texture mapping rendering TESSITURA fatta apposta detail recover
22
M a r c o T a r i n i S i s t e m i M u l t i m e d i a l i I I 2 0 0 4 / 0 5 U n i v e r s i t à d e l l I n s u b r i a - 22/40 simplified 2K triangles originale 500K triangles semplificato ma con tessitura 2K triangles
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.