Direct Volume Direct Volume RenderingRendering
Giuseppe FratturaGiuseppe Frattura
N97/110N97/110
Volume RenderingVolume Rendering
• Il Volume Rendering è un insieme di tecniche della computer grafica atte a mostrare una proiezione 2D di un dataset 3D.
• Un tipico esempio di 3D Dataset è un insieme di immagini, prese da una risonanza magnetica.
• Il termine voxel denota un singolo elemento del volume, come un pixel per un immagine in 2D
• Indirect Volume Rendering
• Direct Volume Rendering
Indirect Volume Indirect Volume RenderingRendering
Adatta primitive geometriche all’interno dei dati, poi effettua il render:
• Marching Cubes
• Surface Tracking
• Fourier Trasform Rendering
Metodo veloce ma di scarsa qualità
Non è conveniente rappresentare fuoco o nuvole
Direct Volume Direct Volume RenderingRendering
• Realizza un proiezione dellRealizza un proiezione dell’’intero volume dei intero volume dei dati, assegnando trasparenza e colore a dati, assegnando trasparenza e colore a ciascun voxel ciascun voxel (tutti)(tutti)
• Il colore e la trasparenza a ciascun voxel si assegna mediante una funzione di trasferimento che mappa l’intensità di ciascun voxel in un valore di RGBA.
DVR: formulazione intuitiva del problema
L’idea è quella di imitare la supervista di Superman in modo da poter avere una visione semplice e comprensibile dell’interno di un volume
DVR: Applicazioni
•Tac – Tomografia assiale computerizzata
•Risonanza magnetica
•Ultrasuoni
•Simulazioni di Fluidodinamica
•Pressione
•Porosità
Funzione di TrasferimentoAssegna ad ogni voxel dei valori RGB ed un valore Alpha (trasparenza)
Si calcola poi il gradiente/normale per applicare l’illuminazione
Direct Volume Rendering: Direct Volume Rendering: TecnicheTecniche
SplattingSplatting
Texture Mapping Texture Mapping
Shear WarpShear Warp
Volume Ray CastingVolume Ray Casting
SplattingSplatting
Tecnica molto semplice, veloce ma poco accurata. Ogni Voxel del volume è “splatted like a snow ball” (Lee Westover), lanciato come una palla di neve, sul piano immagine, ottenendo dei dischi
Quando due dischi si intersecano i loro colori sono interpolati
Texture MappingTexture Mapping
Descritta da Bill Hibbard e Dave Santek
Ottimizzato per schede grafiche 3D
Le singole Slice sono allineate con il volume e renderizzate ad una angolazione scelta dal visualizzatore
Interpolazione dei valori tra slices causa overhead
2D Texture Mapping2D Texture MappingSlices parallele agli assiSlices parallele agli assi
Seleziona il miglior allineamentoSeleziona il miglior allineamento
Può produrre artefattiPuò produrre artefatti
3D Texture Mapping3D Texture Mapping
Usa un reticolo di slicesUsa un reticolo di slices
Costo computazionale alto, ma ottimizzabile Costo computazionale alto, ma ottimizzabile via GPUvia GPU
LL ’’intero dataset deve essere alintero dataset deve essere al’’interno della interno della memoria della GPUmemoria della GPU
Risoluzione limitata a quella della GPU Risoluzione limitata a quella della GPU (problematico per schede video datate)(problematico per schede video datate)
Shear WarpShear Warp1. Transforma i dati del volume
all’interno dello spazio tagliato ottenuto traslando ogni fetta del volume. Le immagini in 2D che compongono il volume vengono scalate per poter effettuare le trasformazioni prospettiche.
2. Unisce le slices in ordine front-to-back. Da questo step si ottiene un immagine 2D intermedia in quanto è distorta.
3. Transforma l’immagine distorta nell’immagine finale tramite il warping.
Volume Ray CastingVolume Ray Casting
4 Step4 Step
Ray CastingRay Casting
SamplingSampling
ShadingShading
CompositingCompositing
Ray CastingRay Casting
Parte un raggio da ogni pixel del Parte un raggio da ogni pixel del piano immagine ed attraversa il piano immagine ed attraversa il volume dellvolume dell’’oggetto da renderizzare.oggetto da renderizzare.
SamplingSampling
Esegue un campionamento dei valori ad ogni intervallo del raggio che attraverso il volume.
ShadingShadingPer ogni valore campionato viene Per ogni valore campionato viene calcolato il colore e la trasparenza ed il calcolato il colore e la trasparenza ed il gradiente in base anche alla posizione gradiente in base anche alla posizione della camera e della luce.della camera e della luce.
CompositingCompositingDopo aver illuminato tutti i punti campione, essi vengono composti per avere il colore finale del pixel
Volume Ray Casting : Miglioramenti
• Parallelismo via GPU-Problema della gestione della memoria
• Trovare la fine del raggio-Variazione di colore molto alta
• DownScaling dell’immagine• Saltare le zone trasparenti / invisibili
MipmappingConservare varie copie del volume con risoluzione diversa.
Grande spreco di memoria
DVR: Artefatti
Una causa di artefatti è il basso sampling rate
Aumentare il sampling rate, sampling rate adattivo
Utilizzo di un filtro bi-cubico
Risultato
DVR: Artefatti 2Artefatti Shading:
Dovuti alla pre-computazione del gradiente o al’interpolazioneSoluzione: Calcolare il gradiente al momento, costo del calcolo maggiore
SPVOLRENSPVOLRENA simple and flexible Volume render Framework A simple and flexible Volume render Framework for Graphics-hardware-based Raycastingfor Graphics-hardware-based Raycasting
Applicativo scritto in C++ Applicativo scritto in C++ con OpenGL Shading con OpenGL Shading LanguagesLanguages
Permette di caricare il Permette di caricare il modello 3D e di modello 3D e di visualizzarlo con I diversi visualizzarlo con I diversi settaggi di settaggi di rappresentazione delle rappresentazione delle superficisuperfici
Peter Triers Volume Ray Casting in CG
• Applicativo scritto in C
• Costruito come esempio, non da la possibilità di caricare dati diversi da quelli di default
• Possibile modificare il valore di Sampling, aumentando o diminuendo lo STEPSIZE di campionamento
Esempio di Peter Triers
SoftwareSoftware
OsiriXOsiriX
Vaa3DVaa3D
ImageVis3DImageVis3D
OsirixOsirix
Uno dei software più performanti in commercio
Versione per iPhone/iPad
Esclusiva Apple, versione a 64bit a pagamento
Vaa3DVaa3D
OpenSource, MultipiattaformaOpenSource, Multipiattaforma
Render 5D Spazio-TemporaliRender 5D Spazio-Temporali
3D Visualization-Assisted Analysis
ImageVis3DImageVis3D
Multipiattaforma
Disponibile per iPhone
Open Source
Sviluppato dall’università dello Utah
Il Raycasting nei Il Raycasting nei VideogiochiVideogiochi
• Il ray casting è parte del Il ray casting è parte del Volume Ray Casting.Volume Ray Casting.
• Usato anche nei giochi per Usato anche nei giochi per rappresentazione di fumo, rappresentazione di fumo, esplosioni e nuvole.esplosioni e nuvole.
• Usato per la prima volta su Usato per la prima volta su wolfstein 3D idSoftwarewolfstein 3D idSoftware
Programmare la GPUVertex Shader e Fragment shader sono programmabili a basso livello con codice assembler ad alto livello con codice:•GLSL (OpenGL)•CG (NVidia)•HLSL (Direct X)
DVR: SVILUPPI FUTURIDVR: SVILUPPI FUTURI• È possibile eseguire il Direct Volume Rendering È possibile eseguire il Direct Volume Rendering
anche via Browser anche via Browser WebWeb tramite le API WebGL e tramite le API WebGL e ll ‘‘HTML5HTML5
• http://demos.vicomtech.org/volren/http://demos.vicomtech.org/volren/