UV-Texturen eines 3D-Scans in BodyPaint 3D / Cinema 4D neu anordnen

Immer mehr 3D-Scanner und Softwarelösungen können Farbinformationen in Form einer sogenannten UV-Texturmapaufzeichnen und exportieren. Dabei wird jedem Polygon ein Ausschnitt einer Bilddatei als Textur zugewiesen. Die Buchstaben U und V bezeichnen die 2D-Texturkoordinaten (Y, Y und Z sind bereits durch das 3D-System belegt), die auf die Oberfläche des Polygonnetzes „abgebildet“ werden.

Wie eine gewöhnliche Landkarte bestehen UV-Maps meist aus mehreren kleineren und größeren Inseln, die zusammenhängende Bereiche des 3D-Modells darstellen. Wer ein 3D-Modell von Grund auf selbst gestaltet, erstellt üblicherweise eine UV-Map, die sowohl effizient als auch nachvollziehbar aufgebaut ist. Bei einer Figur würde man unterschiedliche Körperteile und Kleidungsstücke als getrennte Flächen anlegen. Um Speicher effizient zu nutzen, werden diese Inseln anschließend in einer quadratischen Bilddatei untergebracht, deren Seitenlänge einer Zweierpotenz entspricht (z. B. 2048 x 2048 oder 4096 x 4096 Pixel). So wie bei dieser Spielfigur:

Quelle
Quelle: Pinterest

Leider erzeugt die Software der meisten 3D-Scanner völlig zufällig angeordnete Texturmaps. Manchmal sind Größe und Platzierung der Inseln zwar effizient, doch für Menschen ist die Anordnung fast nie nachvollziehbar. Das erschwert die Bearbeitung in einem 2D-Bildbearbeitungsprogramm wie Photoshop.

Bei meinen 3D-Scanner-Testsbin ich auf einige ausgesprochen schlechte Beispiele mit Tausenden winziger Texturinseln gestoßen. Für diese Anleitung verwende ich jedoch eine Textur aus itSeez3D, einer App für den Stucture Sensor, die mit ihren großen Inseln schon ziemlich gut aufgebaut ist:

Vorschau der ursprünglichen Textur vor der UV-Neuanordnung in Cinema 4D

Die ursprüngliche Textur hat eine Auflösung von 4K (4096 x 4096 Pixel). Eine besonders praktische Funktion von itSeez3D, die vielen anderen Anwendungen fehlt, ist die Gesichtserkennung: Sie sorgt dafür, dass die Gesichtstextur aus einem einzigen Foto stammt und auf einer einzigen UV-Insel liegt. Das Gesicht befindet sich also an einer zusammenhängenden Stelle, der Rest der Textur ist jedoch über das Bild verteilt. Versuchen Sie einmal, die Ohren zu finden.

In dieser Anleitung ordnen wir die Texturinformationen so um, dass sie sich leichter nachvollziehen lassen. Dieser Vorgang heißt UV-Remapping. Für die folgenden Schritte benötigen Sie 3 Programme beziehungsweise Werkzeuge:

  • Maxon BodyPaint 3D — erhältlich als eigenständiges Produkt oder als Bestandteil von Cinema 4D Studio. Falls Sie es nicht besitzen, können Sie eine kostenlose 42-Tage-Testversion hier herunterladen.
  • Adobe Photoshop — Bestandteil der Creative Cloud. Eine kostenlose 30-Tage-Testversion gibt es hier.
  • Flaming Pear Solidify A — ein Filter für Photoshop, den Sie kostenlos hier herunterladen können.

Natürlich benötigen Sie außerdem ein 3D-Modell mit UV-Textur. Falls Sie keinen 3D-Scanner haben, können Sie mit einer dieser kostenlosen Photogrammetrie-Apps auf Ihrem Smartphone ein kostenloses Modell erstellen. BodyPaint 3D / Cinema 4D unterstützen zahlreiche 3D-Dateiformate. Für diese Anleitung habe ich eine .OBJ-Datei aus itSeez3D exportiert.

Legen wir los!

Tipp: Sie können sämtliche folgenden Screenshots zum Vergrößern anklicken, falls die Bildunterschrift im Weg ist!



 

BodyPaint 3D / Cinema 4D Studio

Für diese Anleitung setze ich grundlegende Kenntnisse der Oberfläche von Cinema 4D / BodyPaint 3D voraus. Wichtig ist unter anderem das, was ich die 123456-Bedienung nenne:

  • 1 gedrückt halten + Maus ziehen = Kamera verschieben
  • 2 gedrückt halten + Maus ziehen = Kamera zoomen
  • 3 gedrückt halten + Maus ziehen = Kamera drehen
  • 4 gedrückt halten + Maus ziehen = Objekt oder UV-Auswahl verschieben
  • 5 gedrückt halten + Maus ziehen = Objekt oder UV-Auswahl skalieren
  • 6 gedrückt halten + Maus ziehen = Objekt oder UV-Auswahl drehen

Bei den übrigen Funktionen nenne ich möglichst den Menüpfad, damit Sie sie leicht finden. Außerdem habe ich die entsprechenden Stellen in jedem Screenshot hervorgehoben, damit Sie wissen, wo Sie hinschauen müssen.

Öffnen Sie Ihr 3D-Modell, in diesem Fall eine .OBJ-Datei, mit den voreingestellten Importoptionen. Gelegentlich wird es transparent geladen.
Öffnen Sie Ihr 3D-Modell, in diesem Fall eine .OBJ-Datei, mit den voreingestellten Importoptionen. Gelegentlich wird es transparent geladen. Doppelklicken Sie im Material Manager auf das Material und deaktivieren Sie alle Kanäle außer Color.
Doppelklicken Sie im Material Manager auf das Material und deaktivieren Sie alle Kanäle außer Color. Die Transparenz ist nun verschwunden, die Textur wirkt allerdings etwas unscharf.
Die Transparenz ist nun verschwunden, die Textur wirkt allerdings etwas unscharf. Im Reiter Color sehen Sie, dass es sich um eine 4K-Textur handelt. Um Speicher zu sparen, wird die Vorschau mit geringerer Qualität angezeigt.
Im Reiter Color sehen Sie, dass es sich um eine 4K-Textur handelt. Um Speicher zu sparen, wird die Vorschau mit geringerer Qualität angezeigt. Wechseln Sie zu Editor und stellen Sie Texture Preview Size auf 4K, um die tatsächliche Qualität zu sehen.
Wechseln Sie zu Editor und stellen Sie Texture Preview Size auf 4K, um die tatsächliche Qualität zu sehen.
Falls beim Heranzoomen Teile Ihres Modells abgeschnitten werden, können Sie unter Edit > Project Settings die Einstellung View Clipping auf Tiny setzen.
Falls beim Heranzoomen Teile Ihres Modells abgeschnitten werden, können Sie unter Edit > Project Settings die Einstellung View Clipping auf Tiny setzen.
Wählen Sie das Modell im Object Manager aus und aktivieren Sie Edge Mode. Wählen Sie das Werkzeug Path Selection, um von Hand geschlossene Pfade auszuwählen. Dass die Pfade geschlossen sind, ist wichtig!
Wählen Sie das Modell im Object Manager aus und aktivieren Sie Edge Mode. Wählen Sie das Werkzeug Path Selection, um von Hand geschlossene Pfade auszuwählen. Dass die Pfade geschlossen sind, ist wichtig! Die ausgewählten Kanten dienen beim Remapping als Schnittlinien in der Textur.

Wie Sie sehen, ist meine Auswahl oben recht grob, weil die Polygone an einigen Stellen relativ groß sind. Wenn Sie genauer auswählen möchten, wechseln Sie zunächst zu Polygon Mode, markieren alle Polygone und wählen Mesh > Command > Subdivide, um das Netz zu verdichten. Dadurch können Sie dem Verlauf der Textur genauer folgen. Für diese Anleitung habe ich das Netz unverändert gelassen, damit die Screenshots übersichtlich bleiben.

Diese Kantenauswahlen habe ich für das Modell angelegt. Gesicht, Hals, Hemd und Haare sind jeweils getrennt ausgewählt. Beachten Sie, dass ich die Haare in zwei Bereiche aufgeteilt habe: Die UVs spitz zulaufender Formen würden beim Entspannen stark verzerrt. Auch die untere Abschlussfläche habe ich getrennt ausgewählt.
Diese Kantenauswahlen habe ich für das Modell angelegt. Halten Sie die Umschalttaste gedrückt, um weitere Auswahlen hinzuzufügen, und CTRL, um Bereiche aus der Auswahl zu entfernen. Gesicht, Hals, Hemd und Haare sind jeweils getrennt ausgewählt. Beachten Sie, dass ich die Haare in zwei Bereiche aufgeteilt habe: Die UVs spitz zulaufender Formen würden beim Entspannen stark verzerrt. Auch die untere Abschlussfläche habe ich getrennt ausgewählt.
Wechseln Sie zu Point Mode, drehen Sie das Modell mit dem Gesicht zu sich und wählen Sie mit Live Selection bei Radius 1 die Punkte aus, die Sie fixieren möchten. So verhindern Sie, dass sich dieser Bereich später dehnt. Das ist besonders bei Gesichtern hilfreich.
Wechseln Sie zu Point Mode, drehen Sie das Modell mit dem Gesicht zu sich und wählen Sie mit Live Selection bei Radius 1 die Punkte aus, die Sie fixieren möchten. So verhindern Sie, dass sich dieser Bereich später dehnt. Das ist besonders bei Gesichtern hilfreich. Um die Auswahl zu erleichtern, können Sie die Textur über Options > Texture im Ansichtsfenster vorübergehend ausblenden. Denken Sie daran, sie nach der Punktauswahl wieder einzublenden.

Wenn Sie möchten, können Sie sowohl die Kanten- als auch die Punktauswahl über Select > Set Selection speichern. Dadurch erhält das Modell im Object Manager Auswahl-Tags, mit denen Sie die Auswahlen später erneut laden können. Dieser Schritt ist optional und für die Anleitung nicht erforderlich.

Wechseln Sie zu Polygon Mode und markieren Sie mit Select All sämtliche Polygone. Stellen Sie die Anwendung anschließend über die Auswahl ganz rechts auf BP UV Edit um.
Wechseln Sie zu Polygon Mode und markieren Sie mit Select All sämtliche Polygone. Stellen Sie die Anwendung anschließend über die Auswahl ganz rechts auf BP UV Edit um. Aktivieren Sie in der oberen Leiste UV Polygon Edit Mode. Jetzt sollten alle UVs auf der Texturmap hervorgehoben sein. Falls Sie die Textur selbst nicht sehen, können Sie sie laden, indem Sie im Reiter Materials unten links auf das rote Kreuz klicken.

Optional können Sie jetzt über Image > Texture Size oberhalb der Texturvorschau die Texturgröße erhöhen. Das empfiehlt sich bei einer relativ niedrig aufgelösten Texturmap (2K oder weniger), wenn Sie bei komplexen Modellen durch das Entspannen der UVs keine Texturqualität verlieren möchten. Beispielsweise wird die Gesichtstextur des Modells in den nächsten Schritten etwas kleiner. Ich behalte die Auflösung von 4K bei, weil sie für meine Zwecke ausreicht.

Wählen Sie im Bedienfeld unten rechts UV Commands und klicken Sie auf Store UV. Dadurch werden die Texturinformationen in der aktuellen UV-Anordnung gespeichert.
Wählen Sie im Bedienfeld UV Mapping den Bereich UV Commands und klicken Sie auf Store UV. Dadurch werden die Texturinformationen in der aktuellen UV-Anordnung gespeichert.
Drehen Sie die Kamera im 3D-Ansichtsfenster so, dass das Modell zu Ihnen blickt. Wechseln Sie im Bedienfeld UV Mapping zum Reiter Projection und wählen Sie Frontal.
Drehen Sie die Kamera im 3D-Ansichtsfenster so, dass das Modell zu Ihnen blickt. Wechseln Sie im Bedienfeld UV Mapping zum Reiter Projection und wählen Sie Frontal. Die UVs sind jetzt genauso ausgerichtet wie das Modell im 3D-Ansichtsfenster. Das ist die Ausgangsposition für das Entspannen in den nächsten Schritten.
Achten Sie im Reiter Relax UV darauf, dass Pin Point Selection aktiviert ist. Dadurch werden die ausgewählten Punkte im Gesicht nicht gedehnt. Aktivieren Sie außerdem Cut Selected Edges, damit anhand der Kantenauswahl getrennte UV-Inseln entstehen. Sie können den Algorithmus LSCM oder ABF wählen; manchmal liefert einer das bessere Ergebnis, probieren Sie es aus! Aktivieren Sie Auto Realign und klicken Sie auf Apply. Das kann etwas dauern.
Achten Sie im Reiter Relax UV darauf, dass Pin Point Selection aktiviert ist. Dadurch werden die ausgewählten Punkte im Gesicht nicht gedehnt. Aktivieren Sie außerdem Cut Selected Edges, damit anhand der Kantenauswahl getrennte UV-Inseln entstehen. Sie können den Algorithmus LSCM oder ABF wählen; manchmal liefert einer das bessere Ergebnis, probieren Sie es aus! Aktivieren Sie Auto Realign und klicken Sie auf Apply. Das kann etwas dauern.
Die UVs sollten jetzt in Inseln neu angeordnet sein, während die Textur selbst noch unverändert ist. Klicken Sie auf das Symbol Remap, achten Sie darauf, dass Cut aktiviert ist, und bestätigen Sie mit OK. Dadurch werden die Texturausschnitte an ihre neuen Positionen verschoben.
Die UVs sollten jetzt in Inseln neu angeordnet sein, während die Textur selbst noch unverändert ist. Klicken Sie auf das Symbol Remap, achten Sie darauf, dass Cut aktiviert ist, und bestätigen Sie mit OK. Dadurch werden die Texturausschnitte an ihre neuen Positionen verschoben. Ignorieren Sie die Teile, die nicht verschoben wurden: Sie wurden auf dem Modell ohnehin nicht verwendet.
Optional können Sie Texturbereiche auswählen und verschieben, skalieren oder drehen, indem Sie beim Ziehen die Taste 4, 5 oder 6 gedrückt halten.
Optional können Sie Texturbereiche auswählen und verschieben, skalieren oder drehen, indem Sie beim Ziehen die Taste 4, 5 oder 6 gedrückt halten. WICHTIG: Klicken Sie zuvor im Reiter UV Commands erneut auf Store UV!
UV-Inseln der 3D-Scan-Textur in Cinema 4D neu anordnen
Ich persönlich ordne meine Texturen gern logisch an. Hier habe ich die UVs zunächst neben die Arbeitsfläche gelegt und dort angeordnet. Anschließend habe ich sie wieder auf die Arbeitsfläche zurückgeschoben — das ist wichtig! — und das Remapping wiederholt.
Hier sehen Sie die neu zugeordnete Textur. Die Anordnung ist wesentlich nachvollziehbarer als zuvor, oder? Aber es geht noch weiter!
Hier sehen Sie die neu zugeordnete Textur. Die Anordnung ist wesentlich nachvollziehbarer als zuvor, oder? Sie funktioniert bereits recht gut, doch mit den folgenden zusätzlichen Schritten wird sie noch besser.
Sichtbare Naht an der Kieferlinie nach dem UV-Remapping
Je nachdem, wie Sie das Modell mit der neuen UV-Texturmap rendern, können Nähte sichtbar werden, etwa hier an der Kieferlinie. Das beheben wir jetzt!

 

Auswahl der UV-Polygone zum Erstellen einer Texturmaske
Wählen Sie bei weiterhin aktiven Polygonen Select > Create Mask from Selection. Dabei gibt es einen Haken: Das Programm wählt jedes einzelne Polygon aus, auch wenn es so aussieht, als wären die Inseln ausgewählt. Um das zu korrigieren, wählen Sie Select > Grow Selection und erweitern die Auswahl um 1 Pixel.
Wählen Sie Layer > Add Layer Mask, um die Inseln vom Hintergrund freizustellen.
Wählen Sie Layer > Add Layer Mask, um die Inseln vom Hintergrund freizustellen.
Da JPG-Dateien keine Ebenen enthalten können, sollten Sie die Textur als Photoshop-Datei (PSD) speichern, um sie im nächsten Schritt weiterzubearbeiten.
Da JPG-Dateien keine Ebenen enthalten können, sollten Sie die Textur als Photoshop-Datei (PSD) speichern, um sie im nächsten Schritt weiterzubearbeiten.


 

Adobe Photoshop

 

Öffnen Sie die PSD-Datei in Adobe Photoshop.
Öffnen Sie die PSD-Datei in Adobe Photoshop. Halten Sie im Ebenenbedienfeld CMD (Mac) beziehungsweise CTRL (PC) gedrückt und klicken Sie auf die Schwarz-Weiß-Maske, um sie in eine Auswahl umzuwandeln. Löschen Sie die Maske anschließend, indem Sie sie in den Papierkorb ziehen, wenden Sie sie dabei aber nicht an!
Hier sehen Sie die schwarzen Pixel, die für die sichtbaren Linien in der Textur verantwortlich sind.
Hier sehen Sie die schwarzen Pixel, die für die sichtbaren Linien in der Textur verantwortlich sind.
Texturauswahl in Photoshop verkleinern
Wählen Sie Select > Modify > Contract. Verkleinern Sie die Auswahl bei einer 4K-Textur um 2 Pixel.
Erstellen Sie aus der verkleinerten Auswahl eine Maske, indem Sie unten im Ebenenbedienfeld auf New Layer Mask klicken: das weiße Rechteck mit dem schwarzen Kreis. Klicken Sie anschließend mit der rechten Maustaste auf die Maske und wählen Sie Apply Layer Mask.
Erstellen Sie aus der verkleinerten Auswahl eine Maske, indem Sie unten im Ebenenbedienfeld auf New Layer Mask klicken: das weiße Rechteck mit dem schwarzen Kreis. Klicken Sie anschließend mit der rechten Maustaste auf die Maske und wählen Sie Apply Layer Mask.
Wählen Sie die Ebene aus und gehen Sie zu Filters > Flaming Pear > Soldify A. Falls Sie den Download in der Einleitung übersehen haben, finden Sie ihn hier.
Wählen Sie die Ebene aus und gehen Sie zu Filters > Flaming Pear > Soldify A. Den Download finden Sie hier , falls Sie ihn in der Einleitung übersehen haben. Speichern Sie das Ergebnis als JPG-Datei, wenn Ihnen Kompatibilität wichtig ist, oder als PNG-Datei für eine höhere Qualität.
Wechseln Sie zurück zu Cinema 4D / BodyPaint 3D und öffnen Sie das Material im Material Manager. Laden Sie im Kanal Color die Textur, die Sie gerade aus Photoshop gespeichert haben.
Wechseln Sie zurück zu Cinema 4D / BodyPaint 3D und öffnen Sie das Material im Material Manager. Laden Sie im Kanal Color die Textur, die Sie gerade aus Photoshop gespeichert haben.
Wie Sie sehen, ist die Naht an der Kieferlinie jetzt verschwunden. Sie können das Modell im nativen C4D-Format speichern oder in ein Austauschformat wie .OBJ exportieren. Bei diesem Format bleibt die Textur eine separate Bilddatei, die Sie oder andere leicht bearbeiten können.
Wie Sie sehen, ist die Naht an der Kieferlinie jetzt verschwunden. Sie können das Modell im nativen C4D-Format speichern oder in ein Austauschformat wie .OBJ exportieren. Bei diesem Format bleibt die Textur eine separate Bilddatei, die Sie oder andere leicht bearbeiten können.
Mit der leicht bearbeitbaren Textur können Sie Ihrer Kreativität nun freien Lauf lassen. Und weil es sich um ein 3D-Modell handelt, müssen Sie sich nicht immer selbst um die Schattierung kümmern. Hier habe ich kurzerhand ein Retro-Blumenmuster auf den Bereich des Hemds gesetzt, ein Tattoo hinzugefügt und die Augen grün eingefärbt.
Mit der leicht bearbeitbaren Textur können Sie Ihrer Kreativität nun freien Lauf lassen. Und weil es sich um ein 3D-Modell handelt, müssen Sie sich nicht immer selbst um die Schattierung kümmern. Hier habe ich kurzerhand ein Retro-Blumenmuster auf den Bereich des Hemds gesetzt, ein Tattoo hinzugefügt und die Augen grün eingefärbt.
Mit etwas dynamischer Beleuchtung sieht die zunächst flach wirkende Blumentextur tatsächlich ziemlich gut aus.
Mit etwas dynamischer Beleuchtung sieht die zunächst flach wirkende Blumentextur tatsächlich ziemlich gut aus.

Das war’s! Ich hoffe, ich habe alles abgedeckt. Falls Sie an einer Stelle nicht weiterkommen, schreiben Sie mir bitte unten in den Kommentaren.


Auch wenn Sie mit dieser Anleitung verständlicher aufgebaute Texturmaps erstellen können, sollten Sie eines wissen: 3D-Scans in dieser Form sind für bestimmte Anwendungen noch lange nicht optimal. Wenn Sie sie beispielsweise für eine 3D-Spiele-Engine vorbereiten möchten, werden Sie feststellen, dass die Polygone des Netzes zufällig angeordnet sind. Diese Anordnung, auch Topologie genannt, ist weder ideal noch effizient.

In künftigen Beiträgen werde ich Techniken zum Nachbearbeiten der Geometrie und zur Retopologisierung eines 3D-Modells vorstellen. Folgen Sie @3Dscanexpert in den sozialen Medien, um als Erste zu erfahren, wenn neue Anleitungen erscheinen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Inhalt