Vom Lesen des Papiers bis zu Seite 2 scheint es, dass die Volumengewichte an den Ecken des Gitters gespeichert werden, anstatt das Gewicht des Würfels selbst zu sein, wie es normale Algorithmen im Marching Cubes-Stil bevorzugen. Diese Eckgewichte definieren einen Punkt zwischen der Kante zwischen zwei Ecken, an dem ein Vorzeichenwechsel von Ecke zu Ecke stattfindet. Kanten mit Vorzeichenänderungen speichern auch eine Normale für die Kante, die die abgewinkelte Linie in Ihrer 2D-Darstellung im OP darstellt. Diese normalen Informationen werden während der Erstellung des Volumes definiert (unabhängig davon, welches Bearbeitungswerkzeug oder welche prozedurale Volume-Erstellungsmethode verwendet wird), nicht nachdem die Isofläche generiert wurde, wie dies von einem Algorithmus im Marching Cubes-Stil erwartet wird. Diese normalen Daten "besagen", dass die Linie / Oberfläche, die durch den Punkt verläuft, den vordefinierten Normalwert haben muss. In Fällen, in denen Marching Cubes die Linie an diesem Punkt biegen würden, um sich mit einem anderen Punkt an einer benachbarten Kante zu verbinden, verlängern Extended Marching Cubes und Dual Contouring die Linie / Oberfläche nach außen, bis sie sich mit der Linie / Oberfläche schneidet, die durch den Punkt auf der verläuft benachbarte Kante, die einen anderen Normalwert hat. Dies ermöglicht das Erstellen scharfer Ecken aus den Volumendaten, in denen grundlegende Marching Cubes-Algorithmen die Oberfläche etwas abrunden würden. Ich verstehe nicht ganz, wie QEFs (quadratische Fehlerfunktionen) dazu beitragen, außer dass sie es anscheinend einfacher machen, den erweiterten Punkt innerhalb eines Würfels zu berechnen, an dem sich eine Ecke befindet. Extended Marching Cubes und Dual Contouring verlängern beide die Linie / Fläche nach außen, bis sie sich mit der Linie / Fläche schneidet, die durch den Punkt an der angrenzenden Kante verläuft, der einen anderen Normalwert hat. Dies ermöglicht das Erstellen scharfer Ecken aus den Volumendaten, in denen grundlegende Marching Cubes-Algorithmen die Oberfläche etwas abrunden würden. Ich verstehe nicht ganz, wie QEFs (quadratische Fehlerfunktionen) dazu beitragen, außer dass sie es anscheinend einfacher machen, den erweiterten Punkt innerhalb eines Würfels zu berechnen, an dem sich eine Ecke befindet. Extended Marching Cubes und Dual Contouring verlängern beide die Linie / Fläche nach außen, bis sie sich mit der Linie / Fläche schneidet, die durch den Punkt an der angrenzenden Kante verläuft, der einen anderen Normalwert hat. Dies ermöglicht das Erstellen scharfer Ecken aus den Volumendaten, in denen grundlegende Marching Cubes-Algorithmen die Oberfläche etwas abrunden würden. Ich verstehe nicht ganz, wie QEFs (quadratische Fehlerfunktionen) dazu beitragen, außer dass sie es anscheinend einfacher machen, den erweiterten Punkt innerhalb eines Würfels zu berechnen, an dem sich eine Ecke befindet.
Beachten Sie, dass ich hier über Linien und Kanten im 2D-Sinne gesprochen habe, wie in der Darstellung im OP dargestellt. Ich müsste etwas mehr lesen und nachdenken, um dies für die Erzeugung volumetrischer Netze auf 3D auszudehnen.
Um die zweite Hälfte Ihrer Frage zu beantworten, wie die Normalen erzeugt werden sollen, und unter dem Gesichtspunkt des rauschgetriebenen Verfahrens zu denken, scheint es, als würden Sie Ihr Volumen mit Rauschdaten füllen, dann nach Kanten mit Vorzeichenänderungen suchen und dann die 4 Würfel untersuchen Diese teilen sich die Kante, um herauszufinden, wo welche Dreiecke erzeugt werden sollen, und berechnen die Scheitelpunktnormalen wie bei jedem anderen Schnittpunkt mehrerer Dreiecke, wobei der Durchschnitt der Normalen für jedes Dreieck, das den Scheitelpunkt teilt, verwendet wird. Dies ist für mich sehr spekulativ, da sich das Papier hauptsächlich mit CSG-Operationen und Volumina befasst, die aus scankonvertierten Netzen generiert wurden, die beide gut definierte Normalen auf den Oberflächen aufweisen.
Ich hoffe, dass zumindest der erste Teil dieser Antwort die Unterschiede in der Darstellung und Verwendung der Gewichtsdaten auf eine Weise behandelt, die sich von den grundlegenden Marching Cubes deutlich unterscheidet, und warum die normalen Daten relativ früh im Prozess der Volumengenerierung erstellt werden müssen. Dabei werden mit einfachen Marschwürfeln normalerweise Normalen als letzte Stufe des Netzgenerierungsprozesses erstellt.