1 / 22

Sistemi Multimediali II

Lezione 8: meshes. Università dell’Insubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05. Sistemi Multimediali II. Marco Tarini. Mesh triangolare (o mesh simpliciale). facce. vertici. spigoli (o edges ).

said
Download Presentation

Sistemi Multimediali II

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Lezione 8: meshes Università dell’Insubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Sistemi Multimediali II Marco Tarini

  2. Mesh triangolare (o mesh simpliciale) facce vertici spigoli (o edges) • Una mesh è un insieme di triangoli adiacenti 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

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

  4. Caratteristiche topologiche di una mesh • Chiusa o aperta • se chiusa, ogni edge è condivisoproprio due faccie 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

  5. Caratteristiche topologiche di una mesh • Orientabile, non orientabile • è possibile assegnare un orientamento ad ogni faccia coerentemente? • orientabile = normali coerenti! 1 1 3 2 3 2 senso opposto, edge coerente 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

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

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

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

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

  10. Esempio: 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_header 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

  11. Esempio: formato OFF # facce # edges # vertici prima faccia: 4 vertici: con indici 3,2, 1 e 0 indice 0 x,y,z 2ndo vert indice 1 indice 2 indice 3 • Esempio: LetteraL.ply OFF12 10 400 0 03 0 03 1 01 1 01 5 00 5 00 0 13 0 13 1 11 1 1 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 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

  12. Mesh: task comuni • Data una mesh: • magari appena caricata • trovare il 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) 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

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

  14. Task più difficili • Bounding sphere • Stripification • Parametrizzazione • Simplificazione automatica • Detail recovery • ... 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

  15. Task più difficili • Stripification • suddividere i triangoli in triangle strips • più lunghe possibile • perche? 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

  16. Task più difficili • Parametrizzazione • assegnare una coppia di coordinate texutread ogni vertice • ci sono seams • replicare i vertici • memorizzale le text coord per wedge v u 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

  17. Task più difficili • Semplificazione automatica • parametri: • un errore massimo • o un numero di facce obiettivo automaticamente mesh originale 500K triangoli mesh semplificata 2K triangles 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

  18. 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 ‧ 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

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

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

  21. TESSITURA fatta apposta detail recover rendering sempre duemila triangoli, ma con texture mapping 500mila triangoli semplificazioneautomatica 2mila triangoli 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

  22. semplificato ma con tessitura 2K triangles originale 500K triangles simplified 2K triangles 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

More Related