1 / 30

Volume Rendering

Volume Rendering. Prof. Roberto Pirrone. 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 diversi Dinamica dei fluidi (ad es. in campo meteorologico)

nessa
Download Presentation

Volume Rendering

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. Volume Rendering Prof. Roberto Pirrone

  2. 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 diversi • Dinamica dei fluidi (ad es. in campo meteorologico) • Analisi del comportamento dei materiali sotto stress • Rappresentazione di dati ottenuti da scansioni di natura tomografica • Immagini mediche • Scansione di reperti archeologici o di manufatti per l’individuazione di difetti

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

  4. 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: • TAC • Risonanza 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.

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

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

  7. Modalità di rappresentazione dei volumi • Volume rendering • Si 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.

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

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

  10. RayCasting • 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 massimo • Valor medio • Scostamento dal valore massimo o minimo

  11. RayCasting • I passi dell’algoritmo sono • Classificazione 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

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

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

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

  15. Esempi di raycasting

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

  17. Differenze tra i vari tipi di ray casting

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

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

  20. Discretizzazione di un raggio • Il raggio viene discretizzato nella sequenza di voxeladiacentiche 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. Discretizzazione di un raggio

  22. Raytemplates • L’approccio base è quello di proiettare ogni raggio dal centro di un pixel e definire i raytemplatesche ne costituiscono la discretizzazione • Per ogni template si effettuerà il calcolo del valore del pixel, ad esempio mediante la tecnica compositiva.

  23. Raytemplates • 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.

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

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

  26. 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 interpolazionelineare tra i suoi due vicini.

  27. Ray casting su dati trasformati

  28. Splatting La tecnica di volume splatting(Westover 1990) nota anche come voxelprojection, 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 splato improntanon è 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.

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

  30. Splatting

More Related