Index for meshes 3d

361 views

Published on

Other autor: Paola Maiolino

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
361
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Index for meshes 3d

  1. 1. EE T R HE C C O RI E D EE AE -TR ETR D T I K SH IC E ND R MI E P ALBERTO MINETTI PAOLA MAIOLINO 1
  2. 2. CASO 3D: MESH DI TETRAEDRI 2
  3. 3. MESH DI TETRAEDRI● Campi scalari tridimensionali● Molti applicazioni: fisica, chimica, medicina • Analisi elementi finiti, struttura irregolare e dominio di forma arbitraria • 3D GIS, derivano dalla discretizzazione di geometrie irregolari● In ogni caso generalmente di grandi dimensioni● Indici spaziali necessari per query
  4. 4. QUERY SU MESH IN 3DPoint location query trovare il tetraedro t che contente un determinato punto, se il punto si trova su un vertice, un edge o una faccia condivisi da più tetraedri si restituisce solo uno di questiWindow query trovare linsieme di tetraedri che intersecano un parallelepipedoPochi lavori in letteratura su tecniche per eseguire query spaziali su mesh tetraedriche 4
  5. 5. ALBERI TETRAEDRICIStruttura dellindice COME, QUANDO e COSA: ● Come va suddiviso il dominio, ogni indice si può basare indifferentemente su una di queste strutture: ● Octree ● Kd-tree ● Criteri di suddivisione, regole utilizzate per decidere quando suddividere un blocco ● Cosa memorizzare nelle foglie, cioè le informazioni sulle primitive che contengonoIl “quando” e il “cosa” sono caratterizzanti del singolo indice De Floriani, Fellegara, Magillo; Spatial Indexing on Tetrahedral Meshes; 2010
  6. 6. OCTREEAnalogo del quadtree in tre dimensioni ● Suddivisione ricorsiva dei blocchi in otto ottanti ● Ogni nodo interno ha esattamente otto figli
  7. 7. KD-TREEAlbero di ricerca binario per punti k-dimensionali ● dividono ricorsivamente le regioni in due aree della stessa grandezza attraverso un iperpiano passante per il centro del blocco ● Ogni livello dell’albero è associato a una delle dimensioni liperpiano sarà perpendicolare allasse della dimensione considerata
  8. 8. COSTRUZIONE DEL KD-TREE
  9. 9. COSTRUZIONE DEL KD-TREE
  10. 10. COSTRUZIONE DEL KD-TREE
  11. 11. COSTRUZIONE DEL KD-TREE
  12. 12. COSTRUZIONE DEL KD-TREE
  13. 13. COSTRUZIONE DEL KD-TREE
  14. 14. COSTRUZIONE DEL KD-TREE
  15. 15. COSTRUZIONE DEL KD-TREE
  16. 16. PR-TETRAHEDRAL TREEEstensione diretta del PR octree o PR kd-tree suddivisione si basa sui vertici della mesh tetraedricaI blocchi hanno una capacità massima kv di vertici• Se il blocco contiene #vertici ≤ kv allora è una foglia• Altrimenti viene suddiviso ricorsivamente • in due sottoblocchi con i kd-tree • In otto sottoblocchi con gli octreeOgni nodo foglia memorizza• linsieme di vertici che contiene• linsieme di tetraedri che lo intersecano
  17. 17. PMR-TETRAHEDRAL TREESuddivisione basata sui tetraedri, non sui verticiStruttura dipendente dallordine di inserimentoI blocchi hanno una capacità massima kt di tetraedri • Se il blocco interseca #tetraedri ≤ kt, allora b è una foglia • Altrimenti viene suddiviso una sola volta in 2 o 8 sottoblocchiOgni nodo foglia memorizza linsieme di tetraedri che lo intersecano al massimo d+kt tetraedri per ogni fogliad è la profondità della foglia
  18. 18. PM-TETRAHEDRAL TREESuddivisione basata sul numero di vertici contenuti nel blocco b e dal numero di tetraedri che intersecano bIn questo caso abbiamo due valori massimi, kv e kt1)Se b contiene #vertici ≤ kv e #tetraedri ≤ kt allora b è una foglia2) Se b contiente #vertici ≤ k v ma #tetraedri > kt , b è una foglia sse: a) Tutti i tetraetri che intersecano b sono incidenti nello stesso vertice all’interno o su una faccia del blocco b b) Tutti i tetraedri che intersecano b sono incidenti nello stesso edge che interseca o che appartiene ad una faccia del bloccoOgni nodo foglia memorizza• linsieme di vertici che contiene• linsieme di tetraedri che lo intersecano
  19. 19. COSTIMesh tetraedrali codificate attraverso due array 1) Vertici vi : x, y, z 2) Tetraedri t i : v 1, v 2 , v 3 , v 4NV #verticiNN #nodiNL #nodi fogliaNTL #Tot Tetraedri memorizzati nella lista dei nodi fogliaNc #puntatori ai figli, dipende se si utilizzano octree o kd-tree
  20. 20. ESPERIMENTIDieci mesh tetraedrali con 3K a 300K vertici divise in: • Mesh regolari • Mesh semi-regolari con dominio cubico • Mesh semi-regolari con dominio irregolare • Mesh irregolari
  21. 21. ESPERIMENTII parametri kv e kt definiti attraverso analisi del PR-T tree ● Fissato kv, kt = avg #tetraedri per fogliaPoint location: 100 punti generati casualmente allinterno del bounding box della mesh● Window query: tre insiemi di 100 finestre generate casualmente allinterno della bounding box, divise per dimensione del lato: ● = 5% dimensione massima boundig box ● = 10% dimensione massima boundig box ● = 25% dimensione massima boundig box
  22. 22. KD-TREE VS OCTREECosto spazio kd-tree ≈ 90% octree● #nodi kd-tree ≈ 70-80% #nodi octree● #foglie kd-tree ≈ 40-50% #foglie di octree PMR-T > PR-T > PMT● Profondità kd-tree ≈ 3 volte la profondità octree● #tetraedri per foglia kd-tree ≈ 175% #tetraedri per foglia octreePoint location query kd-tree ≈ 1.5 il tempo sull’octree● #nodi visitati kd-tree ≈ 70% #nodi visitati octree● #test geometrici kd-tree ≈ 1.5 volte #test geometrici octreeWindow query kd-tree ≈ 1.3 il tempo sull’octree
  23. 23. ANALISI DEGLI ESPERIMENTII risultati si riferiscono agli indici spaziali implementati con octree:  utilizzo di spazio leggermente maggiore  esecuzione di query più veloceMesh regolari con kv e kt fissati:  stesso #vertici  stesso #foglie  stesso #tetraedri per foglia  stessa altezzaI requisiti di spazio e tempo per creare gli indici sono però diversiRisultati simili su mesh semiregolari con dominio cubico
  24. 24. ANALISI DEGLI ESPERIMENTIMesh irregolari, PM-T tree  Minor numero di tetraedri per foglia  Maggior #nodi,  maggior #foglie  Maggiore altezzaMesh semi-regolari con un dominio di irregolare comportamento compreso tra quello ottenuto su mesh semi-regolari e completamente irregolariTempi di costruzione: Il PM-T tree >> PR-T tree dipende dalla configurazione della mesh
  25. 25. ANALISI DEGLI ESPERIMENTI Media nodi Numero medio di Tempo visitati test geometrici esecuzione Point location 15-40 <150 0,5 millisecondi 12 volte minore Qualche Window queries 20-130 dimensione output millisecondoPMR-T tree minor numero di test geometrici per window query, il più efficiente per finestre grandiPR-T tree visita minor numero di nodi, maggior #test geometrici
  26. 26. INFLUENZA DELLA CAPACITÀAvg. nodi visitati SULLE PERFORMANCE PM-T TREE Aumentando la capacità delle foglie, la profondità dellalbero diminuisce, quindi visiteremo meno nodi, ma avremo maggiori test geometrici da eseguire Kv /#vertici
  27. 27. INFLUENZA DELLA CAPACITÀ#test geometrici fissato kT SULLE PERFORMANCE PM-T TREE Necessità di trovare un buon tradeoff tra lefficenza di attraversamento dellalbero e il #test geometrici da eseguire Kv /#vertici
  28. 28. CONCLUSIONIValutazione finale degli esperimenti rispetto a:  Uso della memoria  Performance query spaziali  tempi di calcolo per la costruzionePMR-T tree:  ha in generale una migliore performance nelle query  un moderato overhead di memoriaNonostante sia insertion order dependent non si sono ottenuti alberi sbilanciatiVengono preferiti gli octree rispetto ai kd-tree  Notevole guadagno nelle performance  Occupazione di poco maggiore

×