Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

ws1415:projekte_im_wintersemester_2014_15:marching-cube

Der "Marching Cubes" Algorithmus

Bei Marching Cubes handelt es sich um einen Algorithmus der versucht dreidimensionale Voxeldaten in eine polygonale Darstellung umzuwandeln.

Funktionsweise

Zuerst wird das gesamte Voxelgitter in Würfel aus jeweils acht Voxeln, welche die Eckpunkte bilden, aufgeteilt. Nun wird von Würfel zu Würfel „marschiert“ und bestimmt welche Dreiecke die Voxeldaten am besten Darstellen. Dafür wird ein Schwellwert festgelegt. Werte unter dem Schwellwert befinden sich auf der einen Seite der von den Voxeln dargestellten Oberfläche, Werte über dem Schwellwert auf der anderen. Damit gibt es also $2^8 = 256$ (Unter bzw. über dem Schwellwert für jeden Eckpunkt) Dreiecksaufteilungen für jeden Würfel. Ein großteil hiervon ist allerdings symmetrisch und lässt man rotationen und symmetrie außer Acht gibt es nur 15 verschiedene Fälle.

Wäre dies alles, würden allerdings große Probleme auftreten. Da es nur 15 verschiedene Aufteilungen gibt, würde man immer wieder die selben eckigen Formen und Aufteilungen sehen. Es wäre also keines Falls realistisch. Um dies zu verhindern arbeitet der Algorithmus am besten mit stetigen Werten. Die grundsätzliche Dreiecksaufteilung bleibt hierbei gleich. Die Kanten und Eckpunkte der Dreiecke werden allerdings abhängig von den Werten der Voxel verschoben.

Marching Cubes mit stetigen Werten Marching Cubes mit binären Werten

Linkes Bild: Marching Cubes mit stetigen Werten|Rechtes Bild: Marching Cubes mit binären Werten

Nun müssen die Dreiecke nur noch ausgegeben werden.

ws1415/projekte_im_wintersemester_2014_15/marching-cube.txt · Zuletzt geändert: 2016/05/10 14:46 (Externe Bearbeitung)