Para responder a la pregunta "¿Por qué Marching Tetrahedrons algo tiene ambigüedades?" se requiere entender por qué surgen las ambigüedades en primer lugar en Marching Cubes.
Las ambigüedades se puede producir cuando hay dos vértices diagonalmente opuestos "positivas" y dos vértices diagonalmente opuestos "negativas" en un cubo. Me tomó un tiempo entenderlo, pero el problema con las ambigüedades es que teóricamente permiten crear parches isosuperficiales para cubos adyacentes que son incompatibles entre sí. Esa es la parte obvia. La parte interesante es que dos parches isosuperficiales adyacentes de dos configuraciones ambiguas son incompatibles si (y solo si) uno de ellos separa los vértices "negativos", y el otro separa las verticidades "positivas".
Aquí es una cita relevante desde el gran libro de Rephael Wenger "Isosuperficies Geometría, Topología & Algoritmos" (No puede enviar más de 2 enlaces, por lo que hemos fusionado todas las imágenes relevantes del libro en una single one):
la frontera de parche isosurface tridimensional de un cubo define un isocontorno en cada una de las facetas cuadrados del cubo. Si el parche superficial de la configuración de alguna configuración separa los vértices negativos de la faceta, mientras que un parche isosuperficie de la configuración adyacente separa los positivos, , entonces los bordes isosuperficiales en la faceta común no se alinearán. Los parches isosuperficiales en la Figura 2.16 no separan los vértices positivos en ninguna faceta. Además, los parches de la superficie isosuperficial derivada en cualquier rotación o reflexión de las configuraciones tampoco son vértices positivos separados en ninguna faceta. Por lo tanto, los parches isosuperficiales en dos cubos adyacentes están alineados correctamente en sus límites. Una tabla isosurface igualmente válida, pero combinatoriamente distinta, puede ser generada mediante el uso de parches isosuperficiales que no separan los vértices negativos en cualquier faceta cuadrada.
Lo que esto significa es que si todos configuraciones ambiguos utilizados siguen el mismo patrón (es decir, siempre separados vértices "negativas"), entonces es imposible para producir una superficie topológicamente incorrecta. Y surgirán problemas si usa configuraciones "de ambos mundos" para una única superficie terrestre.
La superficie que se construyó utilizando el mismo patrón de resolución de ambigüedad todavía pueden contener errores no deseados como this (tomado de "La ejecución eficiente de los casos Marching Cubes' con garantías topológicos" artículo de Thomas Lewiner Helio Lopes, Antonio Wilson Vieira y Geovan Tavares), pero será, como usted dijo, hermético.
Para lograr esto, deberá usar la tabla de búsqueda basada en las 22 configuraciones únicas (no las estándar 14 o 15) que se muestran en la Figura 2.16.
Ahora, de vuelta a la pregunta original, por fin, ¿por qué Marching Tetrahedrons no sufre de ambigüedades? Por la misma razón, no habrá ambigüedades en los Cubos de marcha, si se hace como se describió anteriormente, porque usted elige arbitrariamente usar una de las dos variantes disponibles de resolución de configuración ambigua. En Marching Cubes no es del todo obvio (al menos para mí, tuve que investigar mucho) que esta es incluso una opción, pero en Marching Tetrahedrons está hecho para ti por el algoritmo en sí. Aquí hay otra cita del libro de Rephael Wenger:
Los cubos de malla regular tienen configuraciones fi ambiguas mientras que el descomposición tetraédrica no lo hace. ¿Qué pasó con las configu- raciones ambiguas? Estas configuraciones se resuelven mediante la opción de triangulación . Por ejemplo, en la figura 2.31, la primera triangulación proporciona un parche isosuperficie con dos componentes correspondientes a 2B-II en la figura 2.22, mientras que el segundo da un parche isosuperficie con un componente correspondiente a 2B-I.
Observe cómo los cubos se cortan en tetraedros de dos maneras diferentes en la Figura 2.31. La elección de este corte o el otro es la salsa secreta que resuelve las ambigüedades.
Uno se puede preguntar a sí mismo: si el problema de ambigüedad puede resolverse simplemente utilizando el mismo patrón para todos los cubos, ¿por qué hay tantos libros y artículos sobre soluciones más complicadas? ¿Por qué necesito Asymptotic Decider y todo eso? Por lo que puedo decir, todo se reduce a lo que necesita lograr. Si la corrección topológica (como en, sin agujeros) es suficiente para ti, entonces no necesitas todas las cosas avanzadas. Si desea resolver problemas como los que se muestran en el artículo "Implementación eficiente de los cubos de marcha" que se muestra arriba, debe profundizar más.
recomiendo encarecidamente la lectura de los capítulos correspondientes del libro de Rephael Wenger "Isosuperficies Geometría, Topología & Algoritmos" para comprender mejor la naturaleza de estos algoritmos, ¿cuáles son los problemas, lugar en el que los problemas vienen y cómo pueden ser resuelto
Como lo señaló Li Xiaosheng, los fundamentos se pueden entender mejor examinando cuidadosamente el algoritmo Marching Squares primero. En realidad, Li Xiaosheng me recomendó toda la respuesta. Acabo de ampliar un poco las explicaciones.
Cool. Es bueno escuchar que tienes las cosas implementadas. Hay algunas variantes de cubos de marcha que se supone que generan modelos topológicamente correctos. Uno de esos trabajos sobre el tema es "Implementación eficiente de casos de Marching Cubes con garantías topológicas". Otro es "Una tabla de consulta modificada para la desambiguación implícita de los cubos de marcha".En cualquier caso, tiene razón: en casos potencialmente ambiguos, examinan más a fondo las cosas para producir un modelo topológicamente correcto. –