Informatica Grafica a.a. 2010-2011 DICGIM – University of Palermo Dipartimento di Ingegneria...

30
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

Transcript of Informatica Grafica a.a. 2010-2011 DICGIM – University of Palermo Dipartimento di Ingegneria...

Page 1: Informatica Grafica a.a. 2010-2011 DICGIM – University of Palermo Dipartimento di Ingegneria Chimica, Gestionale, Informatica e Meccanica Volume Rendering.

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

Page 2: Informatica Grafica a.a. 2010-2011 DICGIM – University of Palermo Dipartimento di Ingegneria Chimica, Gestionale, Informatica e Meccanica Volume Rendering.

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

Page 3: Informatica Grafica a.a. 2010-2011 DICGIM – University of Palermo Dipartimento di Ingegneria Chimica, Gestionale, Informatica e Meccanica Volume Rendering.

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

Page 4: Informatica Grafica a.a. 2010-2011 DICGIM – University of Palermo Dipartimento di Ingegneria Chimica, Gestionale, Informatica e Meccanica Volume Rendering.

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

Page 5: Informatica Grafica a.a. 2010-2011 DICGIM – University of Palermo Dipartimento di Ingegneria Chimica, Gestionale, Informatica e Meccanica Volume Rendering.

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

Page 6: Informatica Grafica a.a. 2010-2011 DICGIM – University of Palermo Dipartimento di Ingegneria Chimica, Gestionale, Informatica e Meccanica Volume Rendering.

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

Page 7: Informatica Grafica a.a. 2010-2011 DICGIM – University of Palermo Dipartimento di Ingegneria Chimica, Gestionale, Informatica e Meccanica Volume Rendering.

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

Page 8: Informatica Grafica a.a. 2010-2011 DICGIM – University of Palermo Dipartimento di Ingegneria Chimica, Gestionale, Informatica e Meccanica Volume Rendering.

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

Page 9: Informatica Grafica a.a. 2010-2011 DICGIM – University of Palermo Dipartimento di Ingegneria Chimica, Gestionale, Informatica e Meccanica Volume Rendering.

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

Page 10: Informatica Grafica a.a. 2010-2011 DICGIM – University of Palermo Dipartimento di Ingegneria Chimica, Gestionale, Informatica e Meccanica Volume Rendering.

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

Page 11: Informatica Grafica a.a. 2010-2011 DICGIM – University of Palermo Dipartimento di Ingegneria Chimica, Gestionale, Informatica e Meccanica Volume Rendering.

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

Page 12: Informatica Grafica a.a. 2010-2011 DICGIM – University of Palermo Dipartimento di Ingegneria Chimica, Gestionale, Informatica e Meccanica Volume Rendering.

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

Page 13: Informatica Grafica a.a. 2010-2011 DICGIM – University of Palermo Dipartimento di Ingegneria Chimica, Gestionale, Informatica e Meccanica Volume Rendering.

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

Page 14: Informatica Grafica a.a. 2010-2011 DICGIM – University of Palermo Dipartimento di Ingegneria Chimica, Gestionale, Informatica e Meccanica Volume Rendering.

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

Page 15: Informatica Grafica a.a. 2010-2011 DICGIM – University of Palermo Dipartimento di Ingegneria Chimica, Gestionale, Informatica e Meccanica Volume Rendering.

Informatica Grafica a.a. 2010-2011

DICGIM – University of Palermo

Esempi di ray casting21 giugno 2011

Page 16: Informatica Grafica a.a. 2010-2011 DICGIM – University of Palermo Dipartimento di Ingegneria Chimica, Gestionale, Informatica e Meccanica Volume Rendering.

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

Page 17: Informatica Grafica a.a. 2010-2011 DICGIM – University of Palermo Dipartimento di Ingegneria Chimica, Gestionale, Informatica e Meccanica Volume Rendering.

Informatica Grafica a.a. 2010-2011

DICGIM – University of Palermo

Differenze tra i vari tipi di ray casting21 giugno 2011

Page 18: Informatica Grafica a.a. 2010-2011 DICGIM – University of Palermo Dipartimento di Ingegneria Chimica, Gestionale, Informatica e Meccanica Volume Rendering.

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

Page 19: Informatica Grafica a.a. 2010-2011 DICGIM – University of Palermo Dipartimento di Ingegneria Chimica, Gestionale, Informatica e Meccanica Volume Rendering.

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

Page 20: Informatica Grafica a.a. 2010-2011 DICGIM – University of Palermo Dipartimento di Ingegneria Chimica, Gestionale, Informatica e Meccanica Volume Rendering.

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

Page 21: Informatica Grafica a.a. 2010-2011 DICGIM – University of Palermo Dipartimento di Ingegneria Chimica, Gestionale, Informatica e Meccanica Volume Rendering.

Informatica Grafica a.a. 2010-2011

DICGIM – University of Palermo

Discretizzazione di un raggio21 giugno 2011

Page 22: Informatica Grafica a.a. 2010-2011 DICGIM – University of Palermo Dipartimento di Ingegneria Chimica, Gestionale, Informatica e Meccanica Volume Rendering.

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

Page 23: Informatica Grafica a.a. 2010-2011 DICGIM – University of Palermo Dipartimento di Ingegneria Chimica, Gestionale, Informatica e Meccanica Volume Rendering.

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

Page 24: Informatica Grafica a.a. 2010-2011 DICGIM – University of Palermo Dipartimento di Ingegneria Chimica, Gestionale, Informatica e Meccanica Volume Rendering.

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

Page 25: Informatica Grafica a.a. 2010-2011 DICGIM – University of Palermo Dipartimento di Ingegneria Chimica, Gestionale, Informatica e Meccanica Volume Rendering.

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

Page 26: Informatica Grafica a.a. 2010-2011 DICGIM – University of Palermo Dipartimento di Ingegneria Chimica, Gestionale, Informatica e Meccanica Volume Rendering.

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

Page 27: Informatica Grafica a.a. 2010-2011 DICGIM – University of Palermo Dipartimento di Ingegneria Chimica, Gestionale, Informatica e Meccanica Volume Rendering.

Informatica Grafica a.a. 2010-2011

DICGIM – University of Palermo

Ray casting su dati trasformati21 giugno 2011

Page 28: Informatica Grafica a.a. 2010-2011 DICGIM – University of Palermo Dipartimento di Ingegneria Chimica, Gestionale, Informatica e Meccanica Volume Rendering.

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

Page 29: Informatica Grafica a.a. 2010-2011 DICGIM – University of Palermo Dipartimento di Ingegneria Chimica, Gestionale, Informatica e Meccanica Volume Rendering.

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

Page 30: Informatica Grafica a.a. 2010-2011 DICGIM – University of Palermo Dipartimento di Ingegneria Chimica, Gestionale, Informatica e Meccanica Volume Rendering.

Informatica Grafica a.a. 2010-2011

DICGIM – University of Palermo

Splatting21 giugno 2011