3.1    3D Rekonstruktion mit impliziten Flächen



Eine implizite Fläche wird durch eine implizite Funktion definiert, die eine stetige Funktion über R 3 ist. Die Kugel mit Radius 1 (unit sphere) wird z.B. durch die implizite Funktion f( p) = 1 ≤ | p | definiert, für alle Punkte p, die Element von R 3 sind. Für Punkte auf der Kugeloberfläche ist f( p) = 0. Eine kurze Einführung über implizite Flächen findet sich in [ AMH02 ]. Eine wichtige Klasse von impliziten Flächen sind die sogenannten "blobby surfaces" [ Bli82 ]. Solche Flächen können mathematisch folgendermaßen beschrieben werden:
f( p) =
n-1
i=0
h(r i)
wobei n die Anzahl der Objekte ist und für jedes dieser Objekte eine Distanz r i berechnet wird, welche zum Beispiel die Distanz von p zu diesen Objekten sein kann. Die Funktion h beschreibt den Einflußbereich des Objektes i. Für Kugeln kann r i zum Beispiel die Distanz von p zum Zentrum der Kugel i sein.

Abbildung 1: Zwei verschmolzene Kugeln.


In diesem Fall, beschreibt in der oben angegebenen Gleichung eine einzelne Funktion h i das Profil einer "blobby sphere", welche eine Gauß Funktion, mit einem bestimmten Zentrum und Standardabweichung, darstellt. Wenn die Zentren von zwei, auf diese Weise definierten, Kugeln nahe genug zusammen liegen, ergibt sich der Eindruck, als ob die beiden Kugeln miteinander verschmolzen sind.

Die Abbildung 1 zeigt zwei verschmolzenen Kugeln. Alle Punkte auf und zwischen den Kugeln, befinden sich im Einflußbereich der beiden Zentren und formen auf diese Weise die Fläche. Folgender WebGL Link zeigt ein entsprechendes 3D Modell: .

Um die Oberfläche zu rekonstruieren wird ein dreidimensionales Netz über den Bereich gelegt, wo sich die Fläche befindet und der Wert der "Verschmelzungsfunktion" an jedem Netzpunkt evaluiert. Eine bekannte Methode, um Dreiecksnetze aus solchen impliziten Flächen zu erzeugen ist der Marching Cubes [ LCl87 ] Algorithmus.

Die folgenden Rekonstruktionsbeispiele (Abbildung 2) basieren auf den Scandaten des Stanford 3D Scanning Repository, verwendet mit freundlicher Genehmigung des Stanford Computer Graphics Laboratory. Die Rotations- und Positionierungsinformation, die mit diesen Scandaten verfügbar ist, wurde verwendet, um die einzelnen Teile so zu verschieben, daß sie die Punktmenge bilden, die als Ausgangspunkt für die Rekonstruktion diente. Die Information über die Verbindung einzelner Punkte wurde nicht verwendet. Die Punktmenge wurde auf diese Weise als nicht orientierte Punktwolke verwendet.

(a) Hase rekonstruiert aus 362.272 Punkten. (b) Drache rekonstruiert aus 1.235.765 Punkten.
Abbildung 2: Rekonstruktionsbeispiele


Die nachfolgende Abbildung 3 zeigt das Verhalten von verschiedenen Rekonstruktionsmethoden in Bezug auf Löcher in der Oberfläche. Was am Besten ist, hängt von den Anforderungen des Anwendungsgebietes ab. Ein Loch ist entweder beabsichtigt (z.B. gebohrt) oder kann entstehen, wenn der Scanner keine oder zu wenig Punkte geliefert hat. Der Hase wird von unten gezeigt, wo er zwei Löcher und Bereiche mit geringer Datendichte in der Bodenplatte hat.

Das linke Bild 3a wurde mit Zipper erzeugt [ TLe94 ]. Dieses Netz zeigt die erwähnten Löcher und ist nicht geschlossen (wasserdicht).

Der mittlere Hase (Bild 3b) ist jener, der mit der oben beschriebenen, relativ einfachen, Methode aus impliziten Flächen erzeugt wurde. Das Netz dieses Hasen ist wasserdicht und zeigt die Löcher. Er hat eine doppelseitige Hülle.

Für den rechten Hasen (Bild 3c) wurde die Poisson Flächenrekonstruktion verwendet [ KBH06 ]. Diese Methode erzeugt ein wasserdichtes Netz mit geschlossenen Löchern.

(a) Zipper (b) Der Ansatz mit impliziten Flächen. (c) Poisson
Abbildung 3: Rekonstruktionsbeispiele


Die folgenden WebGL Links zeigen 3D Modelle der Rekonstruktionsbeispiele. Die Netzqualität ist auf ca. 35K/70K Knoten/Flächen reduziert: Zipper , Ansatz mit impliziten Flächen und Poisson .