Una implementación eficiente del algoritmo de marching cubes - Silvetti, Andrea (2001)
Uno de los algoritmos de rendering de volúmenes más difundido y utilizado es el denominado marching cubes, propuesto por Lorensen y Cline en 1987. En el mismo se busca extraer una superficie umbral a partir de una matriz volumétrica de datos escalares. Una celda en el espacio está delimitada por los ocho valores de sus vértices. Cada celda se clasifica según los valores de sus vértices respecto al valor umbral. Una celda contiene un trozo de la superficie umbral si por lo menos uno de sus vértices está por debajo del valor umbral y por lo menos otro está por encima. En este caso, cada uno de los ocho vértices de una celda puede asumir un valor por debajo o por encima del umbral. El total de todos los casos posibles es 28=256, pero por consideraciones de simetría se reducen en principio a solo 15. Un problema que pronto fue detectado es la existencia de ambigüedades en la construcción de la superficie umbral entre celdas vecinas. Sin modificaciones al algoritmo original, algunos casos resultan en superficies con 'agujeros'. Esto se produce fundamentalmente cuando dos celdas adyacentes comparten una cara, pero la conexión de los cuatro puntos que dividen las aristas se realiza en una de ellas de forma tal que los puntos con valor superior al umbral queden separados mientras que en la otra cara esos puntos queda unidos. Hasta el momento, se han resuelto varios casos en lo que esto ocurre, pero ninguna solución ha sido exhaustiva, proponiéndose una proliferación de casos especiales para las estas situaciones. Este trabajo presenta una solución definitiva para el buen funcionamiento del algoritmo y algunas pautas para la implementación eficiente del mismo con sólo 30 casos.