heise Software-Verzeichnis

Peter König, Heinrich Hink

Datenmetz

3D-Scans mit Gratis-Software aufpolieren

Kamera, Kinect und Konsorten machen als 3D-Scanner eine erstaunlich gute Figur. Doch es geht noch besser: Kostenlose 3D-Software verleiht dem Datenrohling anschließend den gewünschten Schliff.

Artikel aus c't 18/12

Viele haben den 3D-Scanner schon in der Tasche, ohne es zu wissen – in Form eines digitalen Fotoapparats oder der Handykamera. Umkreist man damit ein unbewegtes Objekt und schießt davon eine Bilderserie, liefert das den notwendigen Stoff, aus dem kostenlose Software ein brauchbares 3D-Datenmodell erzeugt (siehe auch c't 11/12, S. 86). Auch eine Kinect oder die etwas weniger bekannte Tiefenkamera Asus Xtion Pro kann man zum 3D-Scanner umfunktionieren.

Die Ergebnisse sehen gut aus, lassen sich aber immer noch verbessern: Löcher im Oberflächennetz kann man flicken und ungewollt raue Oberflächen lassen sich glätten. Man entfernt Fragmente der Umgebung, die ungewollt in den Scan geraten sind. Porträtbüsten schneidet man unten sauber ab, wo die Falten des Hemds ins Nichts ausfransen, und versieht sie mit einer perfekt ebenen Standfläche.

Das alles klappt mit kostenloser Software. MeshLab stellt Objekte frei, glättet deren Oberfläche und reduziert ihre Polygonzahl. Zusätzlich öffnet und exportiert die Anwendung für Windows, Linux und Mac OS X Dateien in vielen verbreiteten 3D-Formaten. Die Gratisausgabe von netfabb Studio läuft ebenfalls unter den drei genannten Betriebssystemen und macht sich mit ihren Zuschnittwerkzeugen und ihrer Reparaturautomatik nützlich. Sie eignet sich allerdings nur für einfarbige Modelle, da sie Oberflächentexturen ignoriert. MeshMixer ist eine gute Wahl zur Feinpolitur der Oberfläche und um Details von Hand nachzumodellieren. Dieses Programm gibt es für Windows und Mac OS X. Mit dem plattformübergreifenden Open-Source-Paket Blender schließlich gelingt das Kunststück, ein massives Modell innen auszuhöhlen, was Material und Kosten sparen kann, ohne dabei die farbigen Texturen auf der Oberfläche zu verlieren.

Die vier Programme ergänzen sich gut und können allesamt 3D-Dateien im Standardformat OBJ bearbeiten, importieren und exportieren. Leider unterscheiden sie sich deutlich in der Bedienung, zum Beispiel bei der Funktion der Maustasten, wenn man die Ansicht des 3D-Raums verändert.

Als Ausgangspunkte für unsere Beispiele dienten Scans von ReconstructMe und 123D Catch. Die beschriebenen Arbeitsweisen lassen sich auch auf 3D-Modelle aus anderen Quellen übertragen.

ReconstructMe

Für den privaten Gebrauch bekommt man die Windows-Software kostenlos, die eine Kinect oder eine Tiefenkamera vom Typ Asus Xtion Pro in einen Echtzeit-3D-Scanner verwandelt. Es gibt sie als Kommandozeilenversion ReconstructMe sowie als GUI-Variante ReconstructMeQT. Der österreichische Hersteller Profactor pflegt auf seinen Webseiten eine ausführliche englische Installations- und Bedienungsanleitung.

ReconstructMe kann man zwar nach wie vor über die Kommandozeile starten, der Hersteller liefert aber auch Batch-Dateien mit. Sie ersparen dem Anwender Tipparbeit, da sie im Wesentlichen den Programmaufruf mit Parametern enthalten, etwa:

ReconstructMe.exe --scan --sensor mskinect,0 --config cfg/konfi.txt

In diesem Beispiel startet die Software im Echtzeitmodus, bei dem man das 3D-Modell auf dem Bildschirm wachsen sieht. Sie erwartet hier eine Kinect als Sensor und liest Konfigurationseinstellungen aus der Datei konfi.txt im Unterverzeichnis cfg. Solche Konfigurationsdateien lassen sich mit einem Texteditor verändern und an eigene Bedürfnisse anpassen. Speziell für die Details dieser Konfiguration gibt es leider keine Dokumentation. Einige Hinweise findet man in den Kommentaren der mitgelieferten Datei volume_1m.txt.

Parameter, die mit camera_ beginnen, sind lediglich für die Kalibrierung wichtig. Für diesen Schritt findet man auf der Webseite des Herstellers eine ausführliche Anleitung. Interessanter sind die folgenden Abschnitte: In der Klammer volume_size {} gibt man für x-, y- und z-Dimension getrennt die gewünschte Zahl an Volumenelementen (Voxeln) an, und zwar als Zweierpotenz. Die Standardkonfiguration des Herstellers arbeitet mit 256, die HiRes-Varianten mit 512. Bei unseren Versuchen waren auch 1024 in zwei Richtungen drin, allerdings nur, wenn die dritte Zahl auf 128 gesenkt wurde – andernfalls beendete sich ReconstructMe mit einem Fehler namens CL_INVALID_BUFFER_SIZE, vermutlich war die Gesamtzahl der Voxel zu groß.

Die Werte in den Klammern volume_min {} und volume_max {} legen die Grenzen des zu scannenden Raumausschnitts fest. Die Einheiten sind hier Millimeter; der Ursprung des Koordinatensystems liegt auf dem Tiefensensor. Der Scan beginnt, sobald man die Taste P drückt. Die Software bildet in diesem Moment die Koordinaten des Raumausschnitts in den realen Raum ab und entkoppelt sie vom Sensor. Was außerhalb des so festgelegten Bereichs liegt, bekommt man nicht mehr in den Scan hinein, wie man den Sensor auch dreht und wendet. Drückt man jedoch die Taste R, dann wird der Raumausschnitt neu platziert. Allerdings verwirft ReconstructMe dabei auch die bisher erfassten Daten.

ReconstructMeQT arbeitet mit ganz ähnlichen Konfigurationsdateien, allerdings heißen die Raumecken hier minimum_corner{} und maximum_corner{}. Die Auflösung steht unter resolution{} für x-, y- und z-Dimension getrennt. All dies wird von der Klammer volume{} eingefasst.

Die physikalische Auflösung des Scans ergibt sich bei beiden Varianten der Scan-Software aus den Kantenlängen des Raumausschnitts und den Voxelzahlen aus dem Block volume_size {}. Die Konfigurationsdatei für unsere Porträtscans gab einen Quader vor, mit einem Grundriss von 60 Zentimetern zum Quadrat (x × z) und 100 Zentimetern Höhe (y-Richtung). Die Voxelzahl betrug in allen drei Dimensionen jeweils 512. Damit löst ReconstructMe das reale Objekt in der Höhe mit einer Genauigkeit von 1000 mm / 512 ≈ 1,95 mm auf, in Breite und Tiefe mit 600 mm / 512 ≈ 1,17 mm. In einem zweiten Durchgang scannten wir lediglich das Gesicht – das Volumen wurde auf 30 cm × 40 cm × 15 cm verkleinert, die Voxelzahlen blieben bei 512. In der Tiefe könnte man so theoretisch eine Auflösung von 150 mm / 512 ≈ 0,3 mm erreichen, was aber unter der Genauigkeit des Sensors liegt.

123D Catch

Im Kern ist 123D Catch eine Anwendung, die auf Servern von Autodesk läuft und aus Fotoserien unbewegter Szenentexturierte 3D-Modelle berechnet. Zu Beginn hieß das kostenlose Angebot Project Photofly und ließ sich nur über einen Windows-Client benutzen. Inzwischen kann man den Cloud-Dienst auch über ein Web-Interface und eine kostenlose iPad-App beliefern. Für den Export und andere Operationen muss man sich mit einer Autodesk-ID anmelden, für die man sich gratis registriert.

Über die App nimmt man Fotoserien mit der iPad-Kamera auf, schickt die Bilder per Mobilfunk zum Server und bekommt nach einigen Minuten das 3D-Ergebnis aufs Tablet serviert. Hat der Scanversuch nicht geklappt, kann man gleich vor Ort einen zweiten starten. Allerdings beschränkt die App die Zahl der Fotos pro Scan auf 40 und bietet dem Nutzer keine Möglichkeit, das 3D-Modell durch manuelles Einfügen solcher Aufnahmen zu verbessern, die die Software zunächst verworfen hat.

Fürs manuelle Einfügen braucht man die Windows-Version von 123D Catch. Sie markiert von der Automatik nicht verwendete Bilder in der Leiste unten mit einem kleinen gelben Hinweisschildchen. Klickt man ein solches Bild doppelt, öffnet sich ein eigenes Fenster, das links das verworfene und rechts zwei der verwendeten Bilder anzeigt. Nacheinander markiert man in allen drei Bildern die Lage von vier markanten Punkten und wirft 123D Catch anschließend noch einmal an. Im Fall unserer Hundestatuette reichte die Markierung solcher Punkte auf einem einzigen verworfenen Bild als Orientierung für die Software aus, um im nächsten Durchgang alle 17 bisher nicht berücksichtigten Fotos einzubeziehen und die Rückenansicht des Schnauzers zu ergänzen.

Der Windows-Client bietet außerdem eine Rechteck- und eine Lassoauswahl, um überflüssige Teile der Umgebung zu entfernen. Für den Export texturierter Modelle steht OBJ als Dateiformat zur Verfügung. Auf Wunsch erzeugt 123D Catch auch Videos mit Kamerafahrten von Foto zu Foto in beliebig wählbarer Reihenfolge.

Charakterkopf

3D-Dateien beschreiben Objekte über ein Polygonnetz, auch Mesh (Netz oder Gitter) genannt. Das Mesh zerlegt die Form der Oberfläche in lauter Polygone. Ist das Netz komplett geschlossen und weist es auch keine Lücken und Risse auf, bezeichnet man es als wasserdicht – bildlich gesprochen könnte man die Objekthülle innen mit Wasser füllen und nirgends liefe etwas heraus, egal wie man das Objekt dreht und wendet.

3D-Scansoftware liefert keine wasserdichten Netze. Ein Porträtscan aus ReconstructMe beispielsweise erzeugt eine Hülle, die Kopf und Schultern nachformt und nach unten offen ist. Möchte man das Ergebnis nur in ein 3D-PDF einbinden oder im Web präsentieren, macht das nichts – doch wer auf Grundlage des Scans eine Büste auf einem 3D-Drucker produzieren will, der muss unten für eine saubere Standfläche sorgen und alle Öffnungen schließen.

Zu Beginn klopft man sich den Rohscan etwas handlicher zurecht. Dazu öffnet man ihn über "File/Import Mesh" in MeshLab. Da ein typischer Datensatz aus ReconstructMe aus rund einer Dreiviertelmillion Dreiecken besteht, kann es zehn bis zwanzig Sekunden dauern, bis die Hülle dargestellt wird. MeshLab stellt in der Symbolleiste acht Render-Varianten für 3D-Modelle zur Wahl, von der Bounding Box über Punktwolke und Drahtgitter bis zur Darstellung mit Texturen. Bei der Nachbearbeitung ist jene Variante am hilfreichsten, die Flächen und Kanten zeigt (Tooltip "Flat Lines").

Schleifen

Der Befehl "Filters/Remeshing, simplification and reconstruction/Quadric Edge Collapse Decimation" reduziert die Zahl der Polygone. Das kostet kaum Details und entfernt viel Unruhe von der Oberfläche, die das Rauschen des Kinect-Sensors in den Scan gestreut hat. Bei Aufruf des Filters öffnet sich ein kleines Fenster mit Parametern – ein Klick auf "Help" blendet Erläuterungen ein. Als Ziel für die neue Anzahl an Dreiecken (Target number of faces) setzt MeshLab automatisch rund die Hälfte der aktuellen Zahl ein.

Diese Zahl kann man entweder anpassen oder ganz löschen und stattdessen unter "Percentage reduction" einen relativen Wert zwischen 0 und 1 angeben, etwa 0.3 (die englische Bedienoberfläche erwartet hier einen Punkt statt eines Kommas). Dadurch wird die Zahl der Dreiecke auf 30 Prozent heruntergerechnet. Arbeitet man mit relativen Werten, reduziert jeder Klick auf "Apply" die Zahl der Polygone erneut. Das kann man so weit treiben, bis das Porträt wie als Kristall geschliffen wirkt. Probieren Sie es ruhig mal aus – es ist erstaunlich, wie wenige Polygone man braucht, um ein Gesicht wiederzuerkennen.

Bei einmaliger Anwendung haben sich Werte von 0.3 bis 0.4 bewährt. Bei klaren Gesichtszügen gehen damit auch in einem zweiten Durchgang keine entscheidenden Details verloren. Ein Klick auf "Close" schließt das Parameter-Fenster, ohne den Filter anzuwenden.

Meist tut danach noch eine behutsame Glättung gut, die man über "Filters/Smoothing, Fairing and Deformation/Laplacian Smooth" startet. Gewöhnlich reicht hier ein Durchgang statt der voreingestellten drei, andernfalls werden die Formen zu rund gelutscht. Über einen Klick auf "Preview" prüft man die Wirkung vorab. Der Filter wird erst angewandt, wenn man "Apply" drückt.

Anschließend lohnt sich ein Blick von unten ins Innere der Hülle: Dort hinterlässt ReconstructMe oft störende kleine Mesh-Fragmente. "Filter/Selection/Small component selection" bekommt diese in der Regel gut zu fassen und markiert sie rot, woraufhin man sie per Entfernen-Taste löschen kann. Die geglättete und aufgeräumte Hülle speichert man abschließend über "File/Export Mesh As" im Format OBJ.

Zuschneiden

Für den sauberen Abschluss unten kommt als Nächstes netfabb Studio zum Einsatz. Setzt man im Ansicht-Menü einen Haken vor "Bauraum anzeigen", so blendet die Software den Drucktisch eines imaginären 3D-Druckers ein, was bei der Orientierung im Raum hilft. Über "Bauteil/Hinzufügen" holt man das in MeshLab vorbereitete Oberflächennetz ins Programm. Über "Bauteil/Verschieben" und Klicks auf "zum Ursprung" und "Verschieben" rückt man es auf den Drucktisch. Dazu muss das Objekt ausgewählt sein, woraufhin netfabb es unübersehbar giftgrün färbt.

In der Leiste oben findet man links neben der Lupe ein Symbol mit dem Tooltip "Zoom auf alles" – ein Klick darauf füllt die Ansicht mit Bauraum und Objekt. Die Würfelsymbole schalten zwischen Standardansichten um. Sie helfen dabei, die Figur aufrecht und zentriert auf den simulierten Drucktisch zu stellen. Hierfür schaltet man sich nacheinander durch die Ansichten von oben, von der Seite und von vorne, verschiebt die Figur in jeder Ansicht durch Linksklick und Ziehen des eingeblendeten kleinen Quadrats in der Mitte und rotiert sie durch Klicken und Ziehen einer der einfassenden Ecken (siehe Video).

Der nächste Schritt sorgt für eine saubere Standfläche. In der Seitenleiste rechts finden Sie im "Schnitte" betitelten Feld drei Schieberegler. Verschiebt man den z-Regler, zieht netfabb eine unsichtbare Ebene parallel zum Drucktisch ein. Eine blaue Kontur zeigt, wo die Ebene das Objekt schneidet. Mit dem Regler schiebt man sie auf die gewünschte Höhe und klickt dann unter den Schiebern auf "Schneiden" und im folgenden Dialog nochmals auf "Schneiden". Mit der linken Maustaste markiert man den unerwünschten Teil und löscht ihn per Rechtsklick übers Kontextmenü.

Abdichten

Die Kante unten ist jetzt sauber, allerdings ist die Basis des Objekts noch offen. Das behebt die Reparaturautomatik. In den Reparaturmodus wechselt netfabb über das Rote-Kreuz-Symbol. Nur in diesem Modus kann man an das Oberflächennetz selbst Hand anlegen. Hierfür blendet die Symbolleiste zusätzliche Werkzeuge ein.

Der grüne Würfel dient zur Auswahl zusammenhängender Gitterhüllen. Klicken Sie mit diesem Werkzeug einmal auf Ihr Objekt, drehen Sie es in alle Richtungen und inspizieren Sie es von allen Seiten. Alles, was dunkelgrün ist, ist prima – es gehört zu einem zusammenhängenden Oberflächennetz. Hellblaue oder rote Stellen weisen auf lose Fragmente hin. Ein Klick darauf wählt statt der großen Form das unerwünschte Kleinzeug an, das man per Entfernen-Taste löscht.

Nach dieser Kontrolle überlässt man den Rest der Software: Über die Schaltfläche unten in der Seitenleiste startet man die Reparaturautomatik, wählt aus der aufklappenden Auswahl die Standardreparatur, klickt auf "Ausführen" und holt sich erst mal einen Kaffee. Unterdessen schließt netfabb automatisch alle Löcher im Netz. Bei Porträtscans verstecken sie sich gerne oben auf dem Kopf, zwischen Locken, hinter den Ohren oder unter dem Kinn. Damit die Software nach dem Stopfen die Änderungen auch übernimmt, muss man auf "Reparatur anwenden" klicken und bestätigen, dass das ursprünglich importierte Bauteil gelöscht werden soll.

Zurück im Standardmodus kann man das Objekt in weiteren Ebenen zuschneiden. Praktischerweise entstehen dabei keine neuen Löcher, die der Reparaturmodus noch mal flicken müsste – die Software interpretiert das Ganze jetzt als wasserdichte Form und legt bei Schnitten automatisch neue Abschlussflächen an. Zum Schluss speichert man die Form über "Bauteil/Exportieren" im gewünschten 3D-Format, zum Beispiel wieder als OBJ-Datei. Zeigt der Exportdialog ein rotes Kreuz, gibt es noch was zu korrigieren – passenderweise enthält der Dialog gleich auch einen Knopf für die abschließende Reparaturautomatik.

Polieren

Das so nachbearbeitete Objekt ist jetzt technisch 3D-druckreif. An der Oberfläche ist jedoch in der Regel noch einiges zu tun – zum Beispiel für MeshMixer. Wie bei den anderen Anwendungen führt der Weg der 3D-Datei ins Programm auch hier über "File/Import".

Zum Glätten von Oberflächen bietet MeshMixer den SmoothBrush. Radius und Wirkungsstärke dieses Glättungspinsels stellt man über Schieberegler in der Seitenleiste rechts ein. Alternativ kann man beides auch übers Mausrad und über Rechtsklick und Ziehen verändern. Geschickt eingesetzt bügelt der SmoothBrush sichtbare Ansätze an geflickten Löchern glatt, hobelt Beulen weg und zieht störende Falten aus der Kleidung.

Sind hingegen dem Scanner irgendwo ein paar charakteristische Locken durch die Lappen gegangen, kann man die mit dem SurfBrush ergänzen, der Oberflächen ausbuchtet beziehungsweise eindellt (Steuerung drücken). Damit kann man auch Ohrmuscheln oder Nasenlöchern nachträglich die realistische Tiefe verleihen. Das erfordert etwas Übung und überschreitet bereits die Grenze zur elektronischen Bildhauerei, für die sich MeshMixer ebenfalls hervorragend eignet. Zum Schluss speichert man die fertige Datei wieder über File/Export.

Hohlform

Für den Druck auf einem günstigen 3D-Drucker reicht es, wenn das Oberflächennetz in der 3D-Datei ein Volumen vollständig umschließt. Die Maschinen arbeiten nach dem sogenannten Fused-Desposition-Modeling-Verfahren (FDM) und bauen das Objekt Schicht auf Schicht aus geschmolzenem Plastik auf (siehe auch c't 11/12, S. 92). Dabei legt die Steuersoftware der Maschinen das unsichtbare Innere von Werkstücken automatisch als lose Gitterstruktur an. Das spart Zeit, Material, Gewicht und Kosten.

Der Nachteil von FDM: Die Druckerzeugnisse sind einfarbig. Wer mit Fototexturen belegte 3D-Objekte drucken will, wie sie etwa 123D Catch aus Fotos berechnet, muss einen Dienstleister beauftragen, der Maschinen von Z-Corp betreibt. Diese backen ein spezielles Gipspulver mit farbiger Tinte zusammen und tränken das gesamte Gebilde zum Schluss in klarem Kunstharz (siehe c't 15/11, S. 84). Anders als die FDM-Maschinen legen diese Drucker allerdings keine Gitterstrukturen im Inneren an; was die Vorlage als Volumen vorgibt, wird massiv gedruckt. Da die meisten Dienstleister den Preis für Farbdrucke nach verbautem Material berechnen, kommen selbst bei kleinen Modellen schnell ein paar hundert Euro zusammen.

Um Geld zu sparen, höhlt man massive Objekte vor der Bestellung aus. Hierfür bietet Blender die notwendigen Werkzeuge und bewahrt gleichzeitig die fotografische Oberflächentextur des Ausgangsmodells.

Blender ist ein umfangreiches 3D-Open-Source-Paket, das einige Einarbeitung erfordert. Die folgende Anleitung richtet sich an Nutzer, die schon etwas Erfahrung mit der Anwendung haben. Falls Sie noch nie mit Blender gearbeitet haben, gibt es im Web eine Menge Tutorials, die den unfallfreien Einstieg zeigen.

Fellgeselle

Als Beispiel für ein texturiertes Modell dient die Holzstatuette eines Schnauzers, aufgenommen mit 123D Catch. Störende Fragmente der Umgebung wurden bereits in Catch mit dem Auswahllasso entfernt, dann wurde das roh freigestellte Objekt als OBJ exportiert. Nach dem Import in Blender richtet man den Hund im Objekt-Modus so aus, dass die Kanten des Sockels horizontal und vertikal möglichst den Raumachsen folgen.

Wechseln Sie in den Editier-Modus, wählen Sie den Modus zum Bearbeiten von Kontrollpunkten und drücken Sie die Taste A, um die Auswahl aller Punkte aufzuheben. Greifen Sie über die Taste K zum Messer-Werkzeug und schneiden Sie dicht am unteren Rand durch den Sockel. Das Messer trennt das Objekt nicht entzwei, sondern erzeugt eine zusätzliche Kante quer durch alle Polygone entlang der Schnittlinie. Achten Sie beim Schneiden darauf, dass die Option "Cut trough" eingeschaltet ist (Taste Z): Nur so schneidet das Messer durchs ganze Objekt und nicht nur durch die sichtbaren Bereiche.

Nachdem der Schnitt durch einen ersten Klick gestartet wurde, soll er parallel zum Boden laufen. Dafür sorgt ein Druck auf die Taste C, die in Blender die möglichen Winkel der Schnittlinie beschränkt. Direkt nach dem Schnitt sind die Kontrollpunkte des Schnitts noch ausgewählt. Man blendet sie vorübergehend über die Taste H aus und erzeugt damit eine Lücke zwischen den Teilen des Netzes oberhalb und unterhalb des Schnittes.

Den unteren Teil kann man dann löschen: Klicken Sie rechts auf einen beliebigen Kontrollpunkt in diesem Bereich, weiten Sie die Auswahl mit Strg+L auf alle verbundenen Kontrollpunkte aus und entfernen Sie diese.

Innenseite

Das Verfahren eignet sich gleichermaßen zum Begradigen hohler Hüllen wie zum Aufschneiden wasserdichter Modelle. In beiden Fällen ist das Objekt anschließend unten flach abgeschnitten und kann auf diesem unteren Rand wunderbar stehen. Für den 3D-Druck fehlt jetzt noch die Wandstärke. Bei Modellen bis 10 oder 12 Zentimeter sollte sie mindestens 3 bis 4 Millimeter betragen; größere Objekte brauchen stärkere Wände, um stabil zu sein.

Um dem Modell eine Wand zu verleihen, wechselt man zurück in den Objektmodus und wendet den Solidify-Modifikator an. Bei den Optionen schalten Sie "High Quality Normals" und "Fill Rim" ein. Bei der Wahl für den richtigen Wert der Wandstärke (Thickness) helfen nur die Vorschau von Blender und Augenmaß in Bezug auf die Größe des gesamten Modells. Die Wandstärke sollte nicht weniger als 3 bis 5 Prozent der größten Abmessung betragen. Wenn Sie den Modifikator über "Apply" auf das Objekt anwenden, entsteht aus der Vorschau reale Geometrie.

Der Modifikator erzeugt auf der Innenseite der Wand viel Wildwuchs – insbesondere an den Ecken und Kanten treten Verwerfungen und Überschneidungen auf, die von Hand kaum zu korrigieren sind. Um solche Stellen innen zu korrigieren, muss man die äußere Hülle vorübergehend ausblenden. Wählen Sie dazu in einem ersten Schritt die Außenkante der schmalen Standfläche unten aus und verbergen Sie diese. Anschließend wählen Sie wieder einen einzelnen Kontrollpunkt der äußeren Hülle aus, weiten die Auswahl auf alle verbundenen Punkte aus und verbergen die gesamte Außenhaut. Die sichtbar bleibende Innenform fasst man am besten in einer Knotengruppe zusammen, sodass man sie jederzeit wieder schnell anwählen kann.

Auf die Innenform wendet man so lange die Funktion "Smooth Vertex" an, bis alle unklaren Stellen geglättet und alle Überschneidungen verschwunden sind. Bereiche, an denen man die Wand aus Gründen der Stabilität gezielt etwas dicker gestalten will, lassen sich komfortabel mit dem Werkzeug "Shrink/Fatten" nachbearbeiten. Es verschiebt die jeweils ausgewählten Polygone entlang ihrer Normalen nach außen oder innen, je nachdem, wie man die Maus bewegt. Wo sich daraus harte Kanten ergeben, kann man lokal nochmals "Smooth Vertex" anwenden.

Zum Abschluss blendet man die äußere Hülle und den unteren Rand wieder ein und korrigiert von Hand die Innenseite des Rands, falls die "Smooth Vertex"-Kur dort Kontrollpunkte verschoben hat. Als Ergebnis hat das Modell nur noch ein Bruchteil des ursprünglichen Volumens, die Textur sitzt aber wie beim Rohscan – dem 3D-Farbdruck steht nichts mehr im Weg.

Maßstäbe

ReconstructMe liefert Modelle in realen Abmessungen, bei 123D Catch kommen hingegen Fantasiemaße heraus. Hat man einen eigenen 3D-Drucker zur Hand, skaliert man die Druckvorlage in der Druckersoftware problemlos mit der Maus. Bei 3D-Druckdienstleistern ist das schwieriger – sie interpretieren die Koordinaten hochgeladener Vorlagen mal als Maße in Meter, mal in Inch, als Zentimeter oder Millimeter.

Das führt dazu, dass viele Modelle in der Online-Vorschau absurd winzig oder viel zu groß und damit horrend teuer erscheinen. Manche Anbieter wie Sculpteo lassen zu, dass man die Größe des Modells nach dem Hochladen anpasst. Bei anderen, etwa Shapeways, muss man die Vorlage noch mal in geänderter Größe schicken. Teilen Sie dazu Ihr Wunschmaß durch die vom Dienstleister angezeigte Größe und notieren Sie sich diesen Faktor. Dann importieren Sie die OBJ-Datei wieder in MeshLab, wählen "Filters/Normals, Curvature and Orientation/Transform: Scale" und geben für alle drei Achsen den ermittelten Faktor ein. Setzen Sie einen Haken vor "Freeze Matrix", bestätigen Sie das Ganze mit "Apply" und exportieren Sie eine neue OBJ-Datei, die Sie erneut beim 3D-Dienstleister hochladen.

Varianten

Unsere beiden Ansätze sind natürlich nur zwei von vielen möglichen Wegen, um 3D-Scans zu verbessern. So bieten neben netfabb auch MeshLab und MeshMixer Automatiken, um Löcher in der Oberfläche zu stopfen.

Bei MeshMixer verbirgt sie sich hinter der unauffälligen Schaltfläche namens Inspector. Nach einem Klick darauf markiert die Anwendung alle Problemstellen mit stilisierten Stecknadeln: Blaue zeigen auf Löcher. Rote markieren geometrisch uneindeutige Stellen (non-manifolds), verursacht etwa durch Überschneidungen und offene Kanten. Pinkfarbene Nadeln verweisen auf abgelöste Teile des Netzes. Nach Klick auf den jeweiligen Stecknadelkopf repariert MeshMixer die einzelne Problemzone automatisch, nach Klick auf "AutoRepair all" versucht sich die Anwendung nacheinander an allen. Verschwindet das Objekt allerdings hinter lauter Nadeln, sollte man die Schritte einzeln gehen, sonst stürzt MeshMixer nach unserer Erfahrung mit hoher Wahrscheinlichkeit auf halbem Weg ab.

Auch an anderen Stellen lohnen sich Experimente. So kann man in MeshLab schon ganz am Anfang vor dem Reduzieren der Polygonzahl eine Variante der Laplace-Glättung probieren: "Filters/Smoothing, Fairing and Deformation/HC Laplacian Smooth". Klicken Sie ein Häkchen vor "Preview" und prüfen Sie, ob der Filter die Oberfläche mit lauter kleinen Löchern perforiert hat – die müssten später wieder aufwendig geschlossen werden. Man sieht die Löcher übrigens besser, wenn man die Ansicht über die Symbolleiste vorübergehend auf "Smooth" umschaltet und dicht an das Objekt heranzoomt. Werden dabei keine Löcher sichtbar, kann man den Filter über einen Klick auf "Apply" übernehmen, anderenfalls bricht man den Vorgang über "Close" ab und macht nach dem Standardverfahren weiter.

Virtuell bleiben

Wer keinen Zugang zu einem 3D-Drucker hat und die Kosten für den Druck scheut, kann 3D-Scans auch auf einfache Weise online stellen oder in PDFs einbinden. Für die Online-Veröffentlichung von dreh- und schwenkbaren Modellen bietet sich etwa die kostenlose JavaScript-Bibliothek Thingiview.js an. Ansonsten kann man sämtliche 3D-Scans auch in den diversen 3D-Galerien und Shops von 3D-Druckdienstleistern kostenlos veröffentlichen und mit Designs sogar Geld verdienen, indem man sie anderen Nutzern zur Bestellung freigibt (siehe c't 15/11, S. 84).

Bettet man seine Objekte in PDFs ein, lassen sie sich im verbreiteten kostenlosen Adobe Reader betrachten, drehen und zoomen. Die 3D-PDFs erzeugt man über LaTeX. Keine Angst, Sie brauchen dafür nicht fließend TeX zu sprechen, denn MeshLab erzeugt nebenher automatisch eine TeX-Datei, sobald Sie ein Objekt im Format U3D exportieren. Um aus der TeX-Datei ein PDF zu erzeugen, installiert man das kostenlose Programm MiKTex, startet die Eingabeaufforderung, wechselt in das Verzeichnis, in der die TeX-Datei liegt und tippt

pdflatex .tex

Die Standardinstallation von MiKTeX enthält die benötigte Bibliothek namens movie15 zwar nicht von Haus aus, sie installiert diese aber beim Übersetzen automatisch nach.

Die Dokumentation bezeichnet die Bibliothek movie15 inzwischen als überholt und empfiehlt, stattdessen media9 zu verwenden. Wer sich etwas mit TeX auskennt und auf der Höhe der Zeit sein will, kann die von MeshLab erzeugte TeX-Datei anhand der Dokumentation zur Bibliothek media9 leicht anpassen.

MeshLab verschluckt beim Export ins Format U3D allerdings alle vorhandenen Texturen. Brauchen Sie farbige Modelle im PDF, dann benutzen Sie für deren Konvertierung besser die Anwendung DAZ Studio. Diese Software wird derzeit vom Hersteller kostenlos abgegeben und läuft unter Windows und Mac OS X (die folgende Anleitung funktioniert allerdings nur unter Windows). Für den Download müssen Sie ein Benutzerkonto anlegen und im Store DAZ Studio für den Preis von null Euro "kaufen". Sie erhalten eine Seriennummer, die unbegrenzt gültig sein soll.

Nach der Installation importieren Sie Ihr OBJ-Modell in DAZ Studio. Achten Sie darauf, dass bei den "Import Options" im Abschnitt "Axis Conversion" keine Haken gesetzt sind, sonst erscheint Ihr Objekt später seitenverkehrt oder steht Kopf.

Exportieren Sie es gleich wieder, diesmal als U3D. Falls Sie sich nicht tiefer in DAZ Studio einarbeiten und dort gezielt Lichtquellen und Ansichten einrichten wollen, sollten Sie im Exportdialog die Optionen fürs Einbetten von Lichtern und Kamera abwählen. Auch ein Resample der Textur tut unserer Erfahrung nach nicht Not. Bei der anschließenden Umhüllung des exportierten U3D-Modells mit einem PDF-Dokument hilft wieder MiKTeX, ähnlich wie zuvor beschrieben. Die meiste Arbeit nimmt Ihnen dabei eine Batch-Datei ab, die der User bongobat im Wiki zur David-Laserscanner-Software veröffentlicht hat. Dort sind auch die einzelnen Schritte der Konvertierung ausführlich beschrieben, allerdings auf Englisch. Wichtig ist, dass Sie zumindest vorübergehend den Adobe Reader zum Standardprogramm für die PDF-Anzeige erklären – mit anderer PDF-Software fällt die Batch-Datei auf die Nase.

Ziehen Sie dann die U3D-Datei auf die Batchdatei und folgen Sie den Anweisungen der diversen beteiligten Programme. Als Ergebnis erscheint das Objekt samt Textur dreh- und zoombar im Adobe Reader. Falls die Textur wider Erwarten nicht zu sehen ist oder zu blass aussieht, schalten Sie über das Kontextmenü die Darstellung auf "Schattierte Abbildung". Über das Lampensymbol im Menü können Sie "Keine Beleuchtung" wählen, um Glanzlichter zu minimieren. Wenn Sie allerdings Ihr Objekt zuvor liebevoll in DAZ Studio ins rechte Licht gerückt und die Lichtquellen mit exportiert haben, sollten Sie hier stattdessen "Beleuchtung aus Datei" wählen. Zur Standardeinstellung fürs PDF wird das, wenn Sie die zwischendrin angezeigte Datei final.tex nicht einfach abnicken, sondern folgende Zeile daraus entfernen:

3Dlights=Headlamp

Wollen Sie das für alle Ihre 3D-PDFs zum Standard machen, entfernen Sie die Zeile statt aus final.tex aus den beiden Textdateien script2.txt und script3.txt sowie temp.tex im Verzeichnis U3D2PDF (oder kommentieren Sie sie über ein vorangestelltes Prozentzeichen aus). In den script-Dateien können Sie auch den Standard-Begleittext ändern, den die Batch-Datei rund um die 3D-Ansicht einfügt und das Layout des PDFs über die LaTeX-Kommandos an Ihre eigenen Wünsche anpassen.

Feedback

Falls Sie selbst weitere spannende Filter in MeshLab entdecken, wenn Sie noch spezielle Tricks auf Lager haben oder schlicht auf einen Ihrer bearbeiteten 3D-Scans besonders stolz sind, dann freuen wir uns, von Ihnen zu hören. Schreiben Sie einfach eine Mail an pek@ct.de – wir sind gespannt auf Ihre Erfahrungen in 3D. (pek)

Themen-Special mit Bildergalerie unter:
http://www.heise.de/download/special-datenmetz-150901.html