CASE STUDY: ho un organo voxellizzato e associo ad ogni voxel la densità (da 0 ad 1) per ricreare un modello utile nel contesto medico
posso assegnare ad ogni voxel la relativa densità in un range di valori da 0 a 1. Molto utile in ambito medico. Per fare ciò un voxel = 1 float, per aumentare la precisione.
Direct Volume Rendering
Applicazione pratica usando le densità
🌫️ Visualizzazione volumetrica diretta (senza trasformare in mesh)
È come se da ogni pixel dello schermo partisse un raggio che entra dentro il modello 3D.
Il raggio passa attraverso diversi voxel → in base alla loro densità contribuiscono al colore del pixel.
Se trova solo aria (densità 0), il pixel sarà nero.
Se trova ossa, tessuti, darà colore e opacità.
Risultato: sembra un'immagine trasparente, che mostra cosa c’è dentro (come una radiografia 3D).
Mesh (isosuperficie)
Conversione da voxel a mesh bidimensionale
Si prende il modello voxel e si cerca una "superficie" immaginaria dove la densità raggiunge un certo valore (es: 300 = osso).
Questa superficie di densità pari a 300 viene ricostruita con un algoritmo (marching cubes) che crea una mesh di triangoli.
Il risultato è una pelle 3D, come una statua digitale dell’interno del corpo.
le posizioni lungo le linee hanno uguale pressione pari al valore soglia, l’interno ha pressione maggiore
ISO-SUPERFICIE
CASE STUDY
RAGIONAMENTO
L’isosuperfice delimita un bordo, come una “pellicola” i cui voxel ganno valore scalare sigma
i valori maggiori o minori di sigma (in base al contesto) determinano il corpo racchiuso dall’isosuperfice
ALGORITMI
Marching Squares → da griglia 2D a iso-linea (a scopo introduttivo)
INTRODUZIONE
Voxel: sono una griglia di celle 3D (non adiacenti tra loro come le mesh poligonali)
quindi per creare continuità devo capire come rappresentare la linea che collega tra loro i voxel
FUNZIONAMENTO ALGORITMO
ogni punto è un voxel ma poteva essere qualsiasi cosa (pixel, celle), comunque ho una griglia planare 2d
ho colorato la griglia in base al valore soglia, ora devo determinare come rappresentare la linea che separa, per ogni quadrato (e qui l’utilità della griglia) i voxel rossi da quelli blu: avviene in ogni quadrato perINTERPOLAZIONE tra i valori dei 4 vertici del quadrato -> molto figo
Marching Cubes → da griglia 3D a iso-superfice
Lavora sulla reale griglia tridimensionale che rappresenta i voxels
se prima l’interpolazione lineare avvenniva sulle 2 dimensionidi una faccia, ora avviene su 3 dimensioni di un cubo (inclusa la profondità)
Output: mesh triangolari che rappresentano superfici nello spazio
FUNZIONAMENTO
ogni edge che connette voxel pieno con voxel vuoto interseca l’isosuperficie (linea determinana con l’interpolazione)
sono stati studiati 256 casi combinazioni
da isosuperfice a tri mesh? Il reticolo di voxel è proprio la base geometrica che il Marching Cubes sfrutta per costruire la mesh triangolare
ALGORITMO IN AZIONE:
non marcia su tutti i cubi a caso, appena trova un cubo pieno, marcia all’interno dell’isosuperficie che…abbiamo appena visto come viene identificato
evitare i cubi vuoti risarmia molto tempo computazionale
osservaszione
nel 2d ogni quadrato su cui costruivo la linea era attraversato su 2 dei suoi lati. Nel 3d i punti viola sugli edge del cubo sono almeno 3