Direct volume rendering pres

31
Direct Volume Direct Volume Rendering Rendering Giuseppe Frattur Giuseppe Frattura N97/110 N97/110

description

 

Transcript of Direct volume rendering pres

Page 1: Direct volume rendering pres

Direct Volume Direct Volume RenderingRendering

Giuseppe FratturaGiuseppe Frattura

N97/110N97/110

Page 2: Direct volume rendering pres

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

Page 3: Direct volume rendering pres

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

Page 4: Direct volume rendering pres

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.

Page 5: Direct volume rendering pres

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

Page 6: Direct volume rendering pres

DVR: Applicazioni

•Tac – Tomografia assiale computerizzata

•Risonanza magnetica

•Ultrasuoni

•Simulazioni di Fluidodinamica

•Pressione

•Porosità

Page 7: Direct volume rendering pres

Funzione di TrasferimentoAssegna ad ogni voxel dei valori RGB ed un valore Alpha (trasparenza)

Si calcola poi il gradiente/normale per applicare l’illuminazione

Page 8: Direct volume rendering pres

Direct Volume Rendering: Direct Volume Rendering: TecnicheTecniche

SplattingSplatting

Texture Mapping Texture Mapping

Shear WarpShear Warp

Volume Ray CastingVolume Ray Casting

Page 9: Direct volume rendering pres

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

Page 10: Direct volume rendering pres

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

Page 11: Direct volume rendering pres

2D Texture Mapping2D Texture MappingSlices parallele agli assiSlices parallele agli assi

Seleziona il miglior allineamentoSeleziona il miglior allineamento

Può produrre artefattiPuò produrre artefatti

Page 12: Direct volume rendering pres

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)

Page 13: Direct volume rendering pres

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.

Page 14: Direct volume rendering pres

Volume Ray CastingVolume Ray Casting

4 Step4 Step

Ray CastingRay Casting

SamplingSampling

ShadingShading

CompositingCompositing

Page 15: Direct volume rendering pres

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.

Page 16: Direct volume rendering pres

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

Page 17: Direct volume rendering pres

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

Page 18: Direct volume rendering pres

MipmappingConservare varie copie del volume con risoluzione diversa.

Grande spreco di memoria

Page 19: Direct volume rendering pres

DVR: Artefatti

Una causa di artefatti è il basso sampling rate

Aumentare il sampling rate, sampling rate adattivo

Utilizzo di un filtro bi-cubico

Page 20: Direct volume rendering pres

Risultato

Page 21: Direct volume rendering pres

DVR: Artefatti 2Artefatti Shading:

Dovuti alla pre-computazione del gradiente o al’interpolazioneSoluzione: Calcolare il gradiente al momento, costo del calcolo maggiore

Page 22: Direct volume rendering pres

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

Page 23: Direct volume rendering pres

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

Page 24: Direct volume rendering pres

Esempio di Peter Triers

Page 25: Direct volume rendering pres

SoftwareSoftware

OsiriXOsiriX

Vaa3DVaa3D

ImageVis3DImageVis3D

Page 26: Direct volume rendering pres

OsirixOsirix

Uno dei software più performanti in commercio

Versione per iPhone/iPad

Esclusiva Apple, versione a 64bit a pagamento

Page 27: Direct volume rendering pres

Vaa3DVaa3D

OpenSource, MultipiattaformaOpenSource, Multipiattaforma

Render 5D Spazio-TemporaliRender 5D Spazio-Temporali

3D Visualization-Assisted Analysis

Page 28: Direct volume rendering pres

ImageVis3DImageVis3D

Multipiattaforma

Disponibile per iPhone

Open Source

Sviluppato dall’università dello Utah

Page 29: Direct volume rendering pres

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

Page 30: Direct volume rendering pres

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)

Page 31: Direct volume rendering pres

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/