Informatica Grafica a.a. 2010-2011 DICGIM – University of Palermo Dipartimento di Ingegneria...
-
Upload
giacinto-morelli -
Category
Documents
-
view
220 -
download
0
Transcript of Informatica Grafica a.a. 2010-2011 DICGIM – University of Palermo Dipartimento di Ingegneria...
Informatica Grafica a.a. 2010-2011
DICGIM – University of Palermo
Dipartimento di Ingegneria Chimica, Gestionale, Informatica e Meccanica
Volume Rendering
Prof. Roberto Pirrone
21 giugno 2011
Informatica Grafica a.a. 2010-2011
DICGIM – University of Palermo
Generalità
Le tecniche di volume rendering sono volte alla rappresentazione di dati organizzati secondo “volumi” o, meglio, strutture a voxel.
I campi di applicazione sono diversiDinamica dei fluidi (ad es. in campo meteorologico)Analisi del comportamento dei materiali sotto stressRappresentazione di dati ottenuti da scansioni di natura tomografica• Immagini mediche• Scansione di reperti archeologici o di manufatti per
l’individuazione di difetti
21 giugno 2011
Informatica Grafica a.a. 2010-2011
DICGIM – University of Palermo
Generalità
Nelle applicazioni anzidette si può determinare un volume di dati per mezzo di un’analisi ad elementi finiti ovvero per scansione.
In ogni modo, questi dati sono da considerarsi come la rappresentazione di una funzione scalare di un vettore 3D f(x,y,z).
La funzione f è nota ai vertici di ogni voxel e deve essere interpolata al suo interno.
Ciò implica che, in generale, non avremo a che fare con voxel “binari” (pieni o vuoti) ma per ogni voxel verrà misurata una grandezza continua.
In questo senso i volumi rappresentano una discretizzazione della funzione f e si ripropongono le problematiche di interpolazione e di aliasing che sono già state affrontate in altri ambiti della CG.
21 giugno 2011
Informatica Grafica a.a. 2010-2011
DICGIM – University of Palermo
Volumi ottenuti da immagini mediche
Sono il caso più comune di dati volumetrici. Ogni voxel contiene un valore legato alla densità tissutale. Si possono ottenere da:
TACRisonanza Magnetica
TAC: con un tomografo viene misurato l’assorbimento di un insieme di raggi X che attraversano delle sezioni del paziente e sono emessi ruotando intorno al corpo.
RM: viene misurato il decadimento energetico degli atomi del tessuto attraversato da un forte campo magnetico uniforme che orienta parallelamente tutti gli spin della sezione e che, poi, viene perturbato da un impulso RF.
21 giugno 2011
Informatica Grafica a.a. 2010-2011
DICGIM – University of Palermo
Schema dell’acquisizione TAC
Le immagini mediche hanno tipicamente il seguente formato: Field Of View (FOV)
512x512 pixel per rappresentare un campo di circa 50-60cm di lato
Spessore inter-slice: da 1 a 10 mm
Dinamica: 4096 livelli di grigio (12bpp allineati in 16 bit)
21 giugno 2011
Informatica Grafica a.a. 2010-2011
DICGIM – University of Palermo
Modalità di rappresentazione dei volumi
Rappresentazione del volume di voxel in cui sono state praticate delle sezioni per visualizzare l’interno
Semplice se si tratta di sezioni parallele agli assi coordinati ed in corrispondenza della posizione esatta delle slice: si possono applicare le immagini delle slice come tessiture sulle superfici sezionate.
Segmentazione del volume in parti che rappresentano oggetti noti
Si deve segmentare il volume e poi si applicano degli algoritmi di conversione in poligoni per l’effettuazione del rendering convenzionale (ad es. algoritmo marching-cubes).
21 giugno 2011
Informatica Grafica a.a. 2010-2011
DICGIM – University of Palermo
Modalità di rappresentazione dei volumi
Volume renderingSi assegna un valore di trasparenza ad ogni voxel e si visualizza l’intero volume da un qualunque punto di vista
La tecnica base del volume rendering è detta ray casting. L’idea è quella di proiettare dei raggi parallelamente da ogni pixel dell’immagine e intersecare il volume.
Si può individuare la superficie definita dai punti di prima intersezione con il volume, ovvero muoversi all’interno del volume stesso per selezionare solo gli elementi relativi a determinate componenti del data set, per es., sulla base del valore di densità associato.
21 giugno 2011
Informatica Grafica a.a. 2010-2011
DICGIM – University of Palermo
Ray casting
Si può pensare di muovere un piano di sezione ortogonalmente al volume di vista ed osservare il contenuto di ogni sezione durante il moto.
21 giugno 2011
Informatica Grafica a.a. 2010-2011
DICGIM – University of Palermo
Ray Casting
Ogni voxel è determinato da un colore C e da una trasparenza a.
C può essere un falso colore e rappresenta il contenuto informativo del voxel (ad es. il tipo di materiale, il particolare tessuto, etc.)
a è legata alla densità dell’elemento di volume che, in questo contesto, non è mai interamente vuoto o pieno.
21 giugno 2011
Informatica Grafica a.a. 2010-2011
DICGIM – University of Palermo
Ray Casting
L’algoritmo di ray casting proietta dei raggi paralleli attraverso un volume, opportunamente ruotato e traslato secondo le esigenze di visualizzazione.
I raggi attraversano il volume e raccolgono le informazioni di colore dei vari voxel, pesate con la loro trasparenza (compositing)
Si può pensare di utilizzare dei criteri di raccolta delle informazione differenti
Valor massimoValor medioScostamento dal valore massimo o minimo
21 giugno 2011
Informatica Grafica a.a. 2010-2011
DICGIM – University of Palermo
Ray Casting
I passi dell’algoritmo sonoClassificazione dei voxel per attribuire l’informazione di colore (ad es. un voxel ricade in una zona comune a più tessuti)
Trasformazione geometrica del volume di vista
Proiezione dei raggi e raccolta delle informazioni
21 giugno 2011
Informatica Grafica a.a. 2010-2011
DICGIM – University of Palermo
Classificazione dei voxel
Una tecnica (usata nel medical imaging) è quella di attribuire una probabilità di appartenenza di un voxel ad un dato tessuto (o materiale) a seconda del valore del segnale acquisito.
Il colore e la trasparenza del voxel si compongono in rapporto alla percentuale di appartenenza ai vari tessuti.
21 giugno 2011
Informatica Grafica a.a. 2010-2011
DICGIM – University of Palermo
Trasformazione lungo la direzione di vista
Il problema della trasformazione del volume implica il fatto che un raggio non attraverserà una fila di voxel, ma seguirà un percorso attraverso voxel adiacenti
Si ripropongono i problemi di aliasing e di interpolazione già visti nel caso di disegno di primitive 2D.
21 giugno 2011
Informatica Grafica a.a. 2010-2011
DICGIM – University of Palermo
Compositing
Per ogni voxel si applica una tecnica di blending secondo lo schema classico:
Alla fine il colore del pixel sarà la “composizione” pesata dalle trasparenze dei colori dei voxel attraversati dal raggio (radiografia digitale)
21 giugno 2011
Informatica Grafica a.a. 2010-2011
DICGIM – University of Palermo
Esempi di ray casting21 giugno 2011
Informatica Grafica a.a. 2010-2011
DICGIM – University of Palermo
Compositing e shading
Si può pensare di calcolare una normale alla ipotetica superficie passante per un voxel a partire dal gradiente dei valori dei voxel in un intorno.
Migliori stime si possono ottenere per intorni più ampi.
21 giugno 2011
Informatica Grafica a.a. 2010-2011
DICGIM – University of Palermo
Differenze tra i vari tipi di ray casting21 giugno 2011
Informatica Grafica a.a. 2010-2011
DICGIM – University of Palermo
Implementazione del volume rendering
Si possono individuare due grandi categorie di algoritmi di volume rendering
Metodi di ray casting
Metodi di proiezione dei voxel (splatting)
21 giugno 2011
Informatica Grafica a.a. 2010-2011
DICGIM – University of Palermo
Ray casting su dati non trasformati
Si ruota il punto di vista fino a farlo coincidere con la vista voluta e si proiettano i raggi.
In genere un raggio attraversa il volume toccando vari voxel e si hanno le stesse problematiche, estese al caso 3D, di tracciamento delle linee.
Il raggio ha equazione parametrica e verrà usato per ricampionare il volume attraversato.
Ogni valore campionato sarà interpolato trilinearmente e sarà filtrato con un kernel 3D per evitare l’aliasing.
21 giugno 2011
Informatica Grafica a.a. 2010-2011
DICGIM – University of Palermo
Discretizzazione di un raggio
Il raggio viene discretizzato nella sequenza di voxel adiacenti che lo intersecano, inseguendone la traiettoria.
Il calcolo dell’adiacenza dipende dal tipo di connessione utilizzata per i voxel
A livello di faccia
A livello di spigolo
A livello di vertice
21 giugno 2011
Informatica Grafica a.a. 2010-2011
DICGIM – University of Palermo
Discretizzazione di un raggio21 giugno 2011
Informatica Grafica a.a. 2010-2011
DICGIM – University of Palermo
Ray templates
L’approccio base è quello di proiettare ogni raggio dal centro di un pixel e definire i ray templates che ne costituiscono la discretizzazione
Per ogni template si effettuerà il calcolo del valore del pixel, ad esempio mediante la tecnica compositiva.
21 giugno 2011
Informatica Grafica a.a. 2010-2011
DICGIM – University of Palermo
Ray templates
A seconda di come si calcolano i templates si possono creare dei “buchi” cioè dei voxel che non vengono intersecati da alcun raggio e non danno contributo al rendering.
Per evitare ciò si impone che ogni raggio passi dal centro di un voxel sulla faccia del volume che guarda verso la direzione di vista. Ovviamente bisognerà effettuare delle interpolazioni sul piano dell’immagine.
21 giugno 2011
Informatica Grafica a.a. 2010-2011
DICGIM – University of Palermo
Interpolazione trilineare
Si definisce un passo di campionamento lungo il raggio.
Ogni campione CS è interpolato linearmente dai valori CV e CH.
Questi sono ottenuti, dall’interpolazione bilineare lungo la faccia verticale e quella orizzontale di intersezione con il raggio, tenendo conto degli 8 valori scalari di colore determinati nei centri del vicinato dei voxel attraversati.
21 giugno 2011
Informatica Grafica a.a. 2010-2011
DICGIM – University of Palermo
Interpolazione trilineare
La scelta errata del passo di campionamento del raggio può portare a fenomeni di aliasing.
Appaiono degli pseudo contorni originati dall’eccessiva distanza tra due campioni successivi che non si riesce ad approssimare bene mediante l’interpolazione.
21 giugno 2011
Informatica Grafica a.a. 2010-2011
DICGIM – University of Palermo
Ray casting su dati trasformati
Il ray casting su dati trasformati implica che i raggi viaggino perpendicolarmente al piano dell’immagine e sia il volume ad essere deformato per essere correttamente proiettato.
Si può dimostrare che la trasformazione complessiva di un volume è data da una concatenazione di 9 trasformazioni di shearing, tre per ogni asse (Wolberg 1990)
Noto il valore di ogni voxel, si effettua un ricampionamento ad ogni shear: questo implica un ricalcolo del valore del voxel per semplice interpolazione lineare tra i suoi due vicini.
21 giugno 2011
Informatica Grafica a.a. 2010-2011
DICGIM – University of Palermo
Ray casting su dati trasformati21 giugno 2011
Informatica Grafica a.a. 2010-2011
DICGIM – University of Palermo
Splatting
La tecnica di volume splatting (Westover 1990) nota anche come voxel projection, implica che il valore di ogni singolo voxel sia proiettato sul piano dell’immagine.
Ogni voxel (eventualmente trasformato) viene centrato in un kernel tridimensionale di filtraggio spaziale: per proiezioni parallele, di solito, si usa una gaussiana tridimensionale che è di forma sferica.
Lo splat o impronta non è altro che la proiezione del kernel sul piano dell’immagine ed è, ovviamente una gaussiana bidimensionale di pesi noti ed uguali per qualunque voxel, visto che la proiezione è parallela.
21 giugno 2011
Informatica Grafica a.a. 2010-2011
DICGIM – University of Palermo
Splatting
Ogni voxel è proiettato esattamente su un pixel dell’immagine.
Muovendosi dal fondo verso la parte frontale del volume non si deve far altro che accumulare i valori dei singoli voxel proiettati secondo la tabella di pesi del kernel.
Algoritmo veloce con antialiasing automatico.
21 giugno 2011
Informatica Grafica a.a. 2010-2011
DICGIM – University of Palermo
Splatting21 giugno 2011