Bei rasterorientierter Geometrien hoher Auflösung ist die Menge der Strecken bzw. Dreiecke, die vom Marching-Cube-Algorithmus geliefert werden, beträchtlich.
Eine Möglichkeit der Reduktion im zweidimensionalen Fall ist, die Randpolygonzüge durch eine stückweise lineare Approximation zu ersetzen, indem man weiter entfernt liegende Punkte längs der Kontur durch eine Gerade verbindet. Dabei ist die Verbindung so zu wählen, daß die Abweichung der Punkte des ursprünglichen Randpolygons von der neu eingeführten Verbindung eine vorgegebene Toleranz nicht überschreitet.
Im dreidimensionalen Fall ist die Situation schwieriger. Ein Verfahren, das sich nach einigen Untersuchungen als besonders geeignet herausstellte, ist das Verfahren von Schroeder et al. [Sch92b]. Bei dieser Methode werden alle Knotenpunkte des Oberflächengitters anhand ihrer Umgebung klassifiziert, und je nach Typ wird nach bestimmten Genauigkeitskriterien untersucht, ob dieser Punkt entfernt werden kann. Die verbleibende Lücke des Oberflächengitters wird anschließend durch eine Triangulierung mit neuen Dreiecken geschlossen. Dabei reduziert sich im allgemeinen die
Abbildung 3.29: Die dreidimensionalen Grundtypen.
Anzahl der Dreiecke, sodaß nach mehreren Durchläufen eine beträchtliche Reduktion der Zahl der Dreiecke erzielt werden kann. Abbildung 3.30 zeigt die Klassifizierung der Knotenpunkte des Gitters.
Abbildung 3.30: Klassifizierung der Punkte; (a) Einfacher Punkt; (b) Komplexer Punkt;
(c) Kantenpunkt.
Liegt ein einfacher Punkt vor, so wird als Kriterium für das eventuelle Entfernen aus dem Gitter der Abstand zu einer Durchschnittsebene berechnet, wie Abbildung 3.31(a) zeigt. Die Durchschnittsebene wird dabei durch die umliegenden Dreiecke definiert [Sch92b], [Led94]. Liegt der berechnete Abstand unter einem vordefinierten Schwellwert, kann der Punkt aus dem Gitter entfernt werden. Komplexe Punkte werden nie gelöscht, sie liegen an Gitterstellen, an denen mehr als zwei Materialgrenzflächen anschließen. Für Kantenpunkte wird der Abstand des Punktes zur Gitterkante berechnet. Das Unterschreiten eines vordefinierten Grenzwertes bedeutet wieder das Entfernen aus dem Oberflächengitter. Die Gitterkante wird dabei durch die beiden Endpunkte des offenen Rings gebildet (Abbildung 3.31(b)).
Abbildung 3.31: Kriterien für das Entfernen von Punkten; (a) Abstand zu einer
Durchschnittsebene; (b) Abstand zu einer durch die Endpunkte des offenen
Ringes gebildeten Gitterkante.
Nach Entfernen eines Punktes wird der offene Ring neu trianguliert. Eine mögliche Lösung wäre, das nichtplanare Polygon auf die Durchschnittsebene zu projezieren und anschließend eines der zahlreichen Verfahren für die Triangulierung ebener Polygone zu verwenden [Tar88] [Cha91]. Diese Verfahren sind jedoch meist sehr aufwendig und wären auch vermutlich nicht besonders gut geeignet, da die Anzahl der Polygoneckpunkte in unserem Fall im allgemeinen sehr klein bleibt.
Statt dessen wird ein einfaches rekursives Verfahren angewandt, das direkt das nichtplanare Polygon verarbeitet (Abbildung 3.32). Das Polygon wird entlang einer Teilungslinie getrennt, die durch zwei Punkte definiert ist, die nicht unmittelbar aufeinander folgen. Die beiden resultierenden Hälften des Polygons werden auf die gleiche Weise weiter geteilt, bis man nicht weiter teilbare Dreiecke erhält. Das Kriterium für die Auswahl der Teilungslinie ist das Auffinden des Minimums der Normalabstände aller Punkte auf die Teilungsebene, bezogen auf die Länge der Teilungslinie, wobei die Teilungsebene normal auf die Durchschnittsebene verläuft.
Abbildung 3.32: Triangulierung des nichtplanaren Ringes.
Abbildung 3.33 zeigt ein Ergebnis des Marching-Cube-Verfahrens. Die Testgeometrie ist eine Achtelkugel, für die Diskretisierung werden 50 Zellen pro Seitenlänge verwendet. Die Konvertierung der Geometrie mit dem Marching-Cube-Verfahren führt auf 10745 Dreiecke. Für die nachfolgende Vereinfachung stehen zwei Parameter zur Steuerung des Vereinfachungsgrades und der Gitterqualität zur Verfügung. Einerseits ist dies der Grenzabstand (Parameter in Abbildung 3.31), andererseits ein vorgegebenes Grenzseitenverhältnis, mit dem zusätzlich die Qualität der entstehenden Dreiecke beeinflußt werden kann. Generell hat sich als vorteilhaft herausgestellt, das oben beschriebene Verfahren nicht in einem einzigen Durchlauf, sondern mehrmals hintereinander mit unterschiedlichen Vereinfachungsparametern anzuwenden, da dadurch der Vereinfachungsgrad bei gleichbleibender Gitterqualität erhöht werden kann. Eine Studie der Vereinfachungsparameter wurde in [Led94] durchgeführt. Abbildung 3.34 zeigt das Ergebnis nach der Vereinfachung (298 Dreiecke) für zwei Durchläufe mit den Grenzabständen und , wobei auf den Rasterabstand der diskretisierten Geometrie bezogen wird. Das Grenzseitenverhältnis wurde für beide Durchläufe mit 0.2 vorgegeben.
Abbildung 3.33: Ergebnis der Entrasterung mit dem Marching-Cube-Verfahren
(10745 Dreiecke).
Abbildung 3.34: Ergebnis der Vereinfachung (298 Dreiecke).