Um die Frage zu beantworten "Warum hat Marching Tetrahedrons Algo Unklarheiten?" Es ist notwendig zu verstehen, warum die Unklarheiten in erster Linie in Marching Cubes entstehen.
Mehrdeutigkeiten auftreten kann, wenn es zwei diagonal gegenüberliegende „positive“ Ecken und zwei diagonal gegenüberliegender „negativer“ Vertices in einem Würfel. Ich brauchte einige Zeit, um mich daran zu erinnern, aber das Problem mit Mehrdeutigkeiten besteht darin, dass sie theoretisch erlauben, Isoflächen-Patches für benachbarte Cubes zu erstellen, die miteinander inkompatibel sind. Das ist der offensichtliche Teil. Der interessante Teil ist, dass zwei benachbarte Isoflächenfelder aus zwei mehrdeutigen Konfigurationen inkompatibel sind, wenn (und nur wenn) eine von ihnen "negative" Scheitelpunkte trennt und die andere "positive" Scheitelpunkte trennt.
ist hier ein relevantes Zitat aus Rephael Wengers großes Buch „Isosurfaces Geometrie, Topologie & Algorithms“ (nicht mehr als 2 Links posten, also habe ich alle relevanten Bilder aus dem Buch in eine single one verschmolzen):
Rand eines dreidimensionalen Isooberfläche Patchs Würfels definiert eine Isokontur auf jedem der quadratischen Facetten des Würfels. Wenn der Isoflächen-Patch einer Konfiguration die negativen Scheitelpunkte auf der Facette trennt, während einbenachbarter Kon fi gurations-Isoflächen-Patch die positiven trennt, dann werden die Isoflächenkanten auf der gemeinsamen Facette nicht ausgerichtet. Die Isoflächen-Patches in Abbildung 2.16 trennen die positiven Scheitelpunkte auf keiner Facette. Darüber hinaus teilen die abgeleiteten Isoflächen-Flächen Patches in jeder Drehung oder Reflexion der Konfigurationen auch keine positiven Ecken auf jeder Facette . Somit sind die Isoflächenfelder in irgendwelchen zwei benachbarten Würfeln richtig an ihren Grenzen ausgerichtet. Eine gleichwertige, aber kombinatorisch unterschiedliche Isoflächen-Tabelle könnte erzeugt werden, indem Isosurface-Patches verwendet werden, die die negativen Scheitelpunkte auf jeder quadratischen Facette nicht trennen.
Was dies bedeutet ist, dass, wenn alle verwendet mehrdeutige Konfigurationen das gleiche Muster (das heißt immer getrennt „negative“ Eckpunkte) folgen, dann ist es unmöglich, eine topologisch falsche Oberfläche zu erzeugen. Und Probleme treten auf, wenn Sie Konfigurationen "aus beiden Welten" für eine einzelne Isofläche verwenden.
Die Oberfläche, die die gleiche Doppeldeutigkeit-Auflösungsmuster konstruiert wurde mit noch unerwünschte Fehler wie this enthalten (aus „Effiziente Umsetzung von Marching Cubes' Fälle mit topologischen Garantien“ Artikel von Thomas Lewiner Helio Lopes, Antonio Wilson Vieira und Geovan Tavares), aber es wird, wie Sie gesagt haben, wasserdicht.
Um dies zu erreichen, müssen Sie die Nachschlagetabelle basierend auf den 22 einzigartigen Konfigurationen verwenden (nicht den Standard 14 oder 15), die in Abbildung 2.16 gezeigt werden. Jetzt
, zurück auf die ursprüngliche Frage schließlich - warum Marschieren Tetraedern leidet nicht an Zweideutigkeiten? Aus dem gleichen Grund wird es in den Marching Cubes keine Unklarheiten geben, wenn sie wie oben beschrieben ausgeführt werden - weil Sie willkürlich eine der beiden verfügbaren Varianten einer mehrdeutigen Konfigurationsauflösung gewählt haben. In Marching Cubes ist es überhaupt nicht offensichtlich (zumindest für mich, musste viel graben), dass dies sogar eine Option ist, aber in Marching Tetrahedrons ist es für Sie durch den Algorithmus selbst getan. Hier ist ein weiteres Zitat aus Rephael Wenger Buch:
Die regelmäßigen Gitterwürfel haben mehrdeutige Konfigurationen, während die tetraedrischen Zersetzung nicht. Was ist mit den mehrdeutigen Konfigurationen passiert? Diese Konfigurationen werden durch die Wahl der Triangulation gelöst. In Abbildung 2.31 beispielsweise liefert die erste Triangulation ein Isoflächen-Patch mit zwei Komponenten, die in Abbildung 2.22 2B-II entsprechen, während die zweite ein Isoflächen-Patch mit einer Komponente entsprechend 2B-I ergibt.
Beachten Sie, wie Würfel in Abbildung 2.31 auf zwei verschiedene Arten in Tetraeder geschnitten werden. Die Wahl dieses Slicings oder des anderen ist die geheime Soße, die die Unklarheiten löst.
Man kann sich fragen: Wenn das Mehrdeutigkeitsproblem gelöst werden kann, indem man für alle Würfel dasselbe Muster anwendet, warum gibt es dann so viele Bücher und Papiere über kompliziertere Lösungen? Warum brauche ich Asymptotic Decider und all das Zeug? Soweit ich das beurteilen kann, kommt es darauf an, was Sie erreichen müssen. Wenn topologische Korrektheit (wie in, keine Löcher) für dich genug ist, dann brauchst du nicht alle fortgeschrittenen Dinge. Wenn Sie Probleme wie die in "Effiziente Implementierung von Marching Cubes" oben gezeigten Artikel lösen möchten, müssen Sie tiefer tauchen.
Ich empfehle den entsprechenden Kapiteln Rephael Wenger Buch zu lesen „Isosurfaces Geometrie, Topologie & Algorithms“ um besser auf die Natur dieser Algorithmen zu verstehen, was sind die Probleme, wo kommen die Probleme kommen und wie sie sein können gelöst.
Wie von Li Xiaosheng aufgezeigt wurde, können die Grundlagen besser verstanden werden, indem man die Marching Squares zuerst gründlich untersucht. Eigentlich wurde die ganze Antwort von Li Xiaosheng niedergelegt, ich habe die Erklärungen nur ein wenig erweitert.
Kühl. Gut zu hören, dass Sie Dinge umgesetzt haben. Es gibt einige Varianten von Marschwürfeln, die topologisch korrekte Modelle erzeugen sollen. Ein solches Papier zum Thema lautet "Effiziente Umsetzung von Marching Cubes Fällen mit topologischen Garantien". Eine andere ist "Eine modifizierte Nachschlagetabelle zur impliziten Disambiguierung von Marching Cubes".In jedem Fall haben Sie Recht - in potenziell zweideutigen Fällen untersuchen sie die Dinge weiter, um ein topologisch korrektes Modell zu erstellen. –