Post on 19-Jan-2015
description
INDICI KD-TREE E
OCTREE
PER MESH TETR
AEDRICHE
1
ALBERTO MINETTI PAOLA MAIOLINO
CASO 3D: MESH DI TETRAEDRI
2
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
QUERY SU MESH IN 3D
Point location querytrovare 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 questi
Window querytrovare l'insieme di tetraedri che intersecano un parallelepipedo
Pochi lavori in letteratura su tecniche per eseguire query spaziali su mesh tetraedriche
4
ALBERI TETRAEDRICI
Struttura dell'indice 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 contengono
Il “quando” e il “cosa” sono caratterizzanti del singolo indice De Floriani, Fellegara, Magillo; Spatial Indexing on Tetrahedral Meshes; 2010
OCTREE
Analogo del quadtree in tre dimensioni● Suddivisione ricorsiva dei blocchi in otto ottanti● Ogni nodo interno ha esattamente otto figli
KD-TREE
Albero 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
l'iperpiano sarà perpendicolare all'asse della dimensione considerata
COSTRUZIONE DEL KD-TREE
COSTRUZIONE DEL KD-TREE
COSTRUZIONE DEL KD-TREE
COSTRUZIONE DEL KD-TREE
COSTRUZIONE DEL KD-TREE
COSTRUZIONE DEL KD-TREE
COSTRUZIONE DEL KD-TREE
COSTRUZIONE DEL KD-TREE
PR-TETRAHEDRAL TREEEstensione diretta del PR octree o PR kd-tree
suddivisione si basa sui vertici della mesh tetraedrica
I 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 octree
Ogni nodo foglia memorizza• l'insieme di vertici che contiene• l'insieme di tetraedri che lo intersecano
Suddivisione basata sui tetraedri, non sui verticiStruttura dipendente dall'ordine 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
sottoblocchi
Ogni nodo foglia memorizza l'insieme di tetraedri che lo intersecanoal massimo d+kt tetraedri per ogni foglia
d è la profondità della foglia
PMR-TETRAHEDRAL TREE
Suddivisione basata sul numero di vertici contenuti nel blocco b e dal numero di tetraedri che intersecano b
In questo caso abbiamo due valori massimi, kv e kt
1)Se b contiene #vertici ≤ kv e #tetraedri ≤ kt allora b è una foglia2) Se b contiente #vertici ≤ kv 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 blocco
Ogni nodo foglia memorizza• l'insieme di vertici che contiene• l'insieme di tetraedri che lo intersecano
PM-TETRAHEDRAL TREE
COSTI Mesh tetraedrali codificate attraverso due array
1) Vertici vi : x, y, z2) Tetraedri ti : v1, v2, v3, v4
NV #verticiNN #nodi NL #nodi fogliaNTL #Tot Tetraedri memorizzati nella lista dei nodi fogliaNc #puntatori ai figli, dipende se si utilizzano octree o kd-tree
Dieci 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
ESPERIMENTI
ESPERIMENTI
I parametri kv e k
t definiti attraverso analisi del PR-T tree
● Fissato kv, k
t = avg #tetraedri per foglia
Point location: 100 punti generati casualmente all'interno del bounding box della mesh
●Window query: tre insiemi di 100 finestre generate casualmente all'interno della bounding box, divise per dimensione del lato:
● = 5% dimensione massima boundig box● = 10% dimensione massima boundig box● = 25% dimensione massima boundig box
KD-TREE VS OCTREE
Costo 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 octree
Point 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 octree
Window query kd-tree ≈ 1.3 il tempo sull’octree
I risultati si riferiscono agli indici spaziali implementati con octree: utilizzo di spazio leggermente maggiore esecuzione di query più veloce
Mesh regolari con kv e kt fissati: stesso #vertici stesso #foglie stesso #tetraedri per foglia stessa altezza
I requisiti di spazio e tempo per creare gli indici sono però diversi
Risultati simili su mesh semiregolari con dominio cubico
ANALISI DEGLI ESPERIMENTI
Mesh irregolari, PM-T tree Minor numero di tetraedri per foglia Maggior #nodi, maggior #foglie Maggiore altezza
Mesh semi-regolari con un dominio di irregolare comportamento compreso tra quello ottenuto su mesh semi-regolari e completamente irregolari
Tempi di costruzione: Il PM-T tree >> PR-T treedipende dalla configurazione della mesh
ANALISI DEGLI ESPERIMENTI
ANALISI DEGLI ESPERIMENTI
PMR-T tree minor numero di test geometrici per window query, il più efficiente per finestre grandi
PR-T tree visita minor numero di nodi, maggior #test geometrici
Media nodi visitati
Numero medio di test geometrici
Tempo esecuzione
Point location 15-40 <150 0,5 millisecondi
Window queries 20-130 12 volte minore dimensione output
Qualche millisecondo
INFLUENZA DELLA CAPACITÀSULLE PERFORMANCE PM-T TREEAv
g. n
odi v
isita
ti
Kv /#vertici
Aumentando la capacità delle foglie, la profondità dell'albero diminuisce, quindi visiteremo meno
nodi, ma avremo maggiori test geometrici da eseguire
#tes
t geo
met
rici f
issa
to k
T
Kv /#vertici
INFLUENZA DELLA CAPACITÀSULLE PERFORMANCE PM-T TREE
Necessità di trovare un buon tradeoff tra
l'efficenza di attraversamento
dell'albero e il #test geometrici da eseguire
CONCLUSIONI
Valutazione finale degli esperimenti rispetto a: Uso della memoria Performance query spaziali tempi di calcolo per la costruzione
PMR-T tree: ha in generale una migliore performance nelle query un moderato overhead di memoria
Nonostante sia insertion order dependent non si sono ottenuti alberi sbilanciati
Vengono preferiti gli octree rispetto ai kd-tree Notevole guadagno nelle performance Occupazione di poco maggiore