Marching cubes: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Nessun oggetto della modifica
Riga 1:
{{w|informatica}}
'''Marching cubes''' è un algoritmo di computer grafica, pubblicato al SIGGRAPH del 1987 da Lorensen e Cline per estrarre una mesh poligonale di una isosuperficieisosuperfice da un campo scalare 3D (talvolta chiamati [[voxel]]).
 
[[Image:Marchingcubes-head.png|thumb|right|250px|Testa e strutture cerebrali (nascoste) estratte da 150 [[MRI]] slice usando i marching-cubes (circa 150.000 triangoli)]]
 
L'algoritmo procede attraverso il campo scalare, prendendo otto locazioni neighbor per volta (formando così un cubo immaginario), determinando quindi il poligono o i poligoni necessari per rappresentare la parte della [[isosuperficieisosuperfice]] che passa attraverso questo cubo. I poligoni individuali sono quindi fusi nella superficie desiderata.
 
Questo viene fatto creando un indice in un array precalcolato di 256 configurazioni di poligoni possibili ( 28 = 256) all'interno del cubo, trattando ciascuno degli 8 valori scalari come un bit in un intero di 8-bit. Se il valore dello scalare è piu' alto dell'iso-valore (cioè è all'interno della superficie) allora il bit appropriato viene posto a uno, mentre se è più basso (esterno) è impostato a zero. Il valore finale dopo che tutti gli 8 scalari sono controllati, è l'indice all'array della configurazione del poligono.
Riga 12:
[[Image:MarchingCubes.svg|thumb|right|350px|15 configurazioni univoche]] L'array precalcolato delle 256 configurazioni può essere ottenuto per riflessione e rotazioni simmetriche degli unici 15 casi.
 
Il gradiente del campo scalare ad ogni punto della griglia è anche il vettore normale di una ipotetica isosuperficieisosuperfice
da quel punto. Quindi, dovremmo interpolare queste normali lungo i cardini di ciascun cubo per trovare le normali dei vertici generati che sono essenziali per ombreggiare la mesh risultante con qualche modello di illuminazione.