Blender Dokumentation: Suzanne mit UV-Mapping
Diese Seite bezieht sich auf Blender v2.37a |
Von dieser Seite gibt es eine aktuellere Version |
Wenn man mit komplexen Modellen wie zum Beispiel Menschen arbeitet wird es schnell offensichtlich, dass gute Werkzeuge gebraucht werden. Seit Blender 2.34 sind einige neue Werkzeuge im Quellcode vorhanden, darunter auch Schnittkanten und die LSCM Unwrap Funktion.
In diesem Tutorial werde ich Ihnen in zwei Anläufen zeigen wie Sie Suzanne eine UV-Map verpassen und dafür die neuen Werkzeuge verwenden.
Schnittkanten [Seams]
[Bearbeiten]Durch Schnittkanten kann man ein Mesh in Gruppen von Faces aufteilen. Damit kann man das Mesh ordnen, bevor man mit LSCM die UV-Map erzeugt. Diese Gruppen sind aber keine abgetrennte Einheit, sondern einfach nur eine schnelle Möglichkeit, bestimmte Faces auszuwählen. Schnittkanten erzeugen Sie, indem Sie eine oder mehrere Edges im Edit Mode auswählen, Strg E drücken und dann Mark Seam auswählen. Wenn Sie den Weg durch die Menüs bevorzugen, können Sie im Menü Mesh das Untermenü Edges aufklappen und dort Mark Seams auswählen. Eine dicke durchgezogene Linie wird jetzt in der 3D-Ansicht dargestellt, die die neue Schnittkante darstellt. Sie können die Darstellung der Schnittkanten mit dem Button Draw Seams an- oder abstellen. Sie finden Draw Seams im Editing Kontext (F9), entweder im Mesh Tools 1 Panel, wenn Sie im Edit Mode sind, oder im UV Calculation Panel, wenn Sie im Face Select Mode sind.
Sobald eine durchgehende Schnittkante markiert wurde können Sie im Face Select Mode eine Gruppe von Faces einfach dadurch auswählen, dass Sie ein einzelnes Face dieser Gruppe auswählen und L drücken. Dadurch werden alle miteinander verbundenen Faces, die nicht durch Schnittkanten getrennt werden, ausgewählt. Indem Sie strategische Schnittkanten in ihrem Modell erzeugen, können Sie später gezielt mit diesen Gruppen arbeiten und so Ihre Aufgabe deutlich erleichtern.
Idealerweise sollten Sie überall dort Schnittkanten einfügen, wo die UV-Map geschnitten werden soll. Um zum Beispiel die Arme vom Torso eines Charakters abzutrennen, sollten Sie eine geschlossene Schnittkante an jeder Schulter markieren. Es gibt aber auch Fälle, wo Sie statt einer geschlossenen eine offene Schnittkante verwenden sollten.
Lassen Sie uns ein paar Tests durchführen. Fügen Sie eine Suzanne zu Ihrer Szene hinzu und wählen Sie die komplette vertikale Reihe von Vertices in der Mitte aus. Drücken Sie dann Strg E um die so ausgewählten Edges als Schnittkante zu markieren. Um das zu Testen wechseln Sie in den Face Select Mode, auch hier sollte die Schnittkante sichtbar sein. Wählen Sie ein Face aus und drücken Sie L, jetzt sollte eine Seite des Kopfes ausgewählt sein. Wenn alles ausgewählt wäre, würde das heißen, dass Sie irgendwo eine Edge vergessen hätten. Falls das so ist, wissen Sie, was zu tun ist... Einfach, oder nicht? Das ist der Gedanke dabei.
Erzeugen Sie noch ein paar weitere Schnittkanten, versuchen Sie dabei komplexe Bereiche voneinander zu trennen, wie zum Beispiel die Ohren vom Kopf. Wenn Sie die UV-Map erzeugen werden diese Schnittkanten als Schnitte in der Meshoberfläche wie auch in der UV-Map dienen.
Um schnell eine Vertexschleife auszuwählen verwenden Sie am Besten Alt B. Eine interessante Schleife ist die um Suzannes Gesicht, wenn Sie hier eine Schnittkante setzen, können Sie einfach die Vorderseite von der Hinterseite trennen.
Das Mesh auseinanderfalten
[Bearbeiten]Öffnen Sie ein UV-Editor-Fenster neben dem Fenster mit der 3D Ansicht. Wählen Sie dann Ihr Modell aus und wechseln Sie in den Face Select Mode.
Wählen Sie alle Faces auf der linken und rechten Seite von Suzannes Kopf aus, auch die Ohren. Wir werden diese Gruppen mit der Sphere Option auseinanderfalten (im 3D-Fenster U drücken), wodurch wir später für LSCM eine gute Ausgangsbasis haben. Wahrscheinlich erhalten Sie ein 'fast' perfektes Ergebnis. Aber vermutlich sind auch ein paar Faces auf der falschen Seite der UV-Map. Das können Sie natürlich schnell von Hand beheben, aber warum sich die Mühe machen wenn Blender das erledigen kann? Drücken Sie im UV-Editor C um den Active Face Select Mode zu aktivieren. Wählen Sie im UV-Editor dann die Flächen um die Ohren herum wie in Abbildung 2 gezeigt. Verlassen Sie diesen Modus wieder mit C und wählen Sie die oberen zentralen Vertices. Die entsprechenden unteren Vertices sind etwas schwieriger, deshalb stellen wie sie erst einmal hintenan. Da Sie jetzt schon einige Vertices ausgewählt haben drücken Sie P. Das ist der Pin Befehl, er wird die ausgewählten Vertices an ihrer Position festhalten, damit 'nichts' Ihr Layout zerstören kann. Aber mehr dazu später.
Jetzt wo Sie die schön auseinandergefalteten Vertices festgepinnt haben, wählen Sie im 3D-Fenster nur die beiden Faces unter dem Kinn aus. Im UV-Editor pinnen Sie dann die zwei Vertices in der Mitte fest, die vorher so schlecht zugänglich waren. Sie haben es fast geschafft.
Jetzt ist es Zeit für ein bisschen LSCM-Magie. Wählen Sie im 3D-Fenster alle Faces aus die mit den beiden unter dem Kinn verbunden sind (L). Diesmal sollten Sie die Ohren nicht auswählen. Die ausgewählten Faces sollten im UV-Editor erscheinen. Drücken Sie jetzt E. Blender fragt zur Sicherheit nochmal nach ob LSCM wirklich ausgeführt werden soll. Wenn Sie die Frage bestätigen werden wundervolle Dinge geschehen. Die nicht festgepinnten Vertices werden so verschoben, dass sich keine Flächen mehr überlappen. (Wenn nicht, dann fehlt wahrscheinlich die offene Schnittkante dem Hinterkopf entlang bis zum Kinn.)
Jetzt sollten Sie etwas Platz für das Gesicht schaffen. Dafür wählen Sie einfach die Vertices am inneren Rand aus und skalieren sie. Der UV-Editor unterstützt auch das Proportional Editing Tool (O) wie Sie es von Meshes kennen. Das ist sehr nützlich um etwas Platz zu schaffen ohne Faces übereinanderzulegen.
Nachdem Sie etwas Platz geschaffen haben wählen Sie in einem 3D-Fenster in der Vorderansicht das Gesicht und mappen es mit der Option From Window. Dann werden Sie die Faces im UV-Editor noch etwas skalieren müssen, das geht wie gewohnt mit S und eventuell X oder Y falls Sie die Skalierung auf eine Achse beschränken wollen.
Jetzt haben Sie die vorderen Faces schön auseinandergefaltet im UV-Editor.
Wenn Sie im 3D-Fenster die ausgewählten Faces abwählen werden Sie sie im UV-Editor nicht mehr sehen, aber Sie können im View Menü des UV-Editors die Option Draw Shadow Mesh aktivieren um sie dennoch darzustellen.
Die Map zusammennähen
[Bearbeiten]Jetzt müssen wir diese zwei 'Inseln' vereinen, dazu verwenden wir die Stitch-Funktion. Aktivieren Sie Stick UVs to Mesh (Strg C) damit Sie automatisch alle Vertices auswählen die zusammengenäht werden müssen. Wählen Sie einen UV-Vertex vom Rand des Gesichts, Sie werden sehen dass auch der entsprechende Vertex in der anderen Insel ausgewählt wird. Vernähen Sie die beiden mit V. Sie werden dadurch zu einem Vertex verschmolzen der mitten zwischen den beiden Ursprungsvertices liegt.
Es wäre etwas umständlich wenn Sie Vertex für Vertex weiterarbeiten würden. Wählen Sie alle UV-Vertices am Rand von Suzannes Gesicht aus, die entsprechenden Vertices auf dem anderen Teil sollten damit auch ausgewählt sein. Dann vernähen Sie sie und pinnen Sie sie fest, aber nur wenn es keine Überlappung gibt. Wenn es Überlappungen gibt pinnen Sie die entsprechenden Vertices nicht fest und fahren mit dem Vernähen fort.
Jetzt sind beide Inseln vernäht. Es gibt aber Bereiche wo sich Faces überlappen. Pinnen Sie die 'schönen' Vertices fest und führen Sie LSCM nochmal aus. Drücken Sie einfach E, Sie müssen nichts auswählen. Wenn Sie alles richtig machen sollte jede Ausführung von LSCM weitere Überlappungen entfernen.
Sie können natürlich auch Vertices skalieren oder verschieben bevor Sie LSCM ausführen, aber wählen Sie dafür immer Paare aus um die Symmetrie zu erhalten.
Nochmal, bitte ;-)
[Bearbeiten]Also gut. Wir haben eine ganze Menge Werkzeuge verwendet und eine mehr oder weniger anständige UV-Map erhalten. Wir hätten das aber auch deutlich schneller und einfacher erreichen können.
Die Schnittkanten die ich markiert hatte müssen nicht unbedingt 'geschlossen' sein. Wie ich schon gesagt habe sind sie nur Schnitte in der Oberfläche die Blender dazu benutzt, sie auseinanderzufalten. Wenn wir also schlau genug vorgehen könnten wir die ganze Arbeit mit ein oder zwei LSCM-Schritten erledigen.
Löschen Sie alle Schnittkanten, die Suzie hat (Strg E->Clear Seam). Unser Ansatz ist folgender: wir wollen die gestreckten Teile so gut wie möglich unsichtbar lassen. Wie ein Schönheitschirurg wollen wir keine Beweise für unsere Schnittkanten hinterlassen. Deshalb markiere ich eine Schnittkante von der Mitte des oberen Teils bis unter das Kinn, ohne das Gesicht zu schneiden. Am Einfachsten wählen Sie die betreffenden Edges manuell aus und markieren sie dann als Schnittkante. Beachten Sie dass diese Schnittkante jetzt 'offen' ist, das heißt es ist kein kompletter Schnitt um den ganzen Kopf herum.
Ich habe auch noch eine kurze Schnittkante vom Anfang der vorigen bis in die Nähe der Ohren gezogen, natürlich auf beiden Seiten symmetrisch. Das war alles.
Wählen Sie jetzt alle Faces bis auf die Augen aus und falten Sie sie mit LSCM auseinander. Das sieht deutlich besser aus.
Jetzt können wir wie vorhin die Vertices festpinnen und die UV-Map überarbeiten, aber diesmal sollte es deutlich einfacher sein.
Wir kommen zum Ende
[Bearbeiten]Jetzt werden wir die schon erklärten Methoden anwenden um die überlappenden Flächen in Suzannes Gesicht zu korrigieren.
Versuchen Sie zuerst einmal, die äußeren UV-Vertices der Ohren etwas nach außen zu skalieren und festzupinnen. Wenn Sie dann LSCM anwenden, haben die inneren Vertices mehr Platz und sollten sich auseinanderfalten. Am besten Sie arbeiten sich von außen nach innen vor, immer wieder Platz schaffen und festpinnen. Nach ein paar Schritten sollte die UV-Map schon gut aussehen.
Sie können sich die Sache vereinfachen, wenn Sie ganze Flächen im inneren Ohr auswählen und skalieren. Sie können sogar das ganze Ohr auswählen und um ein paar Grad drehen.
Mit etwas Geduld werden Sie ein fast vollständig gepinntes Ohr erhalten, wo nichts mehr überlappt.
Jetzt gibt es nicht mehr viel zu tun. Wählen Sie die Augen und mappen Sie sie mit LSCM oder From Window. Da die Augen nicht mit dem Rest des Meshes verbunden sind, wird der 'Stitch'-Befehl zum Vernähen nicht wirken. Wenn Sie die Augen also mit dem Rest vereinen wollen, müssen Sie mit dem 'Weld'-Befehl arbeiten. Mir ist es aber lieber wenn die Augen separat sind, da ich sie so einfacher bearbeiten kann, wenn ich die Texturen male.
Wenn Ihr Charakter Augenlider hat, ist es besser sie fast geschlossen zu lassen während Sie die UV-Map erzeugen, dadurch ist es leichter die Texturen dafür zu malen.
Was jetzt?
[Bearbeiten]Sobald Sie mit der UV-Map zufrieden sind, können Sie sie exportieren. Dazu rufen Sie aus dem 'UVs'-Menü des UV-Editors das Save UV Face Layout... Script auf, das mit den offiziellen Blenderversionen mitgeliefert wird. Stellen Sie hier den Size-Wert ein, wenn Sie mit der Größe nicht einverstanden sind. Wenn Sie eine sehr große Textur erzeugen wollen, sollten Sie auch noch Wire Size erhöhen. Alles andere können Sie so lassen. Kontrollieren Sie noch einmal dass Suzanne auch wirklich ausgewählt ist und klicken Sie dann auf Export. Dadurch wird eine Targa-Textur mit dem UV-Layout erzeugt, die Sie mit Gimp, Photoshop und anderen Grafikprogrammen öffnen können. Benutzen Sie diese Textur als Referenz um Ihre Texturen zu malen.
Um dieses Bild als Referenz verwenden zu können brauchen Sie ein Grafikprogramm das mit transparenten Ebenen arbeiten kann. In diesem Beispiel verwende ich Gimp, Sie können aber jedes andere Programm verwenden dass Ihnen angemessen erscheint.
Erzeugen Sie ein neues Bild von der Größe der UV-Map und laden Sie diese in eine Ebene. Fügen Sie dann einige neue Ebenen über dieser Referenzebene ein. Ich verwende drei Ebenen mit den Namen Col, Bump und Ref. Später werde ich dadurch drei verschiedene Texturen erhalten, die ich für die Farbe, die Unebenheiten und die Reflektivität verwenden werde. Sie können am Anfang aber auch eine Textur für alles verwenden. Der Vorteil der Trennung liegt darin dass man zum Beispiel die Unebenheiten anpassen kann ohne die Farben zu ändern.
Hier noch ein kleiner Trick von mir: Wählen Sie die Referenzebene aus und führen Sie den Filter > Farben > Farben zu Transparenz-Filter aus. So können Sie den weißen Hintergrund durchsichtig machen und nachher die Referenzebene ganz oben auf den Ebenenstapel legen. Dadurch wird die Referenz immer angezeigt und wird nicht übermalt, außerdem können Sie die Arbeitsebene mit voller Deckkraft anzeigen und sehen genau wie die Farben nachher herauskommen.
Die Farbtextur ist nicht so kompliziert. Diese Farben werden so wie sie sind über das Modell verteilt. Die Texturen für Unebenheit und Reflektivität sind schon etwas komplizierter. Die Bumpmaps sollten von einem mittleren Grau ausgehen, alles was dunkler oder heller ist wird als Unebenheit in die eine oder andere Richtung interpretiert, wobei die Richtung in Blender einfach umgestellt werden kann. Die RefMap geht von schwarz aus, alles was hell ist wird stärker reflektieren.
Sie können so viele Texturen erzeugen wie Sie Texturkanäle in Blender haben, zum Beispiel auch für die Stärke von Spiegelungen, wie Durchscheinend ihr Objekt sein soll (Translucency), welche Selbstleuchtkraft (Emit) und so weiter. Alle diese Texturen werden die selben UV-Koordinaten verwenden wenn Sie die UV Option im Map Input Panel in den Material Buttons aktivieren.
Um die Texturen zu verwenden, die wir erzeugt haben, müssen wir zuerst ein Material erzeugen und ihm dann die richtigen Bildtexturen zuweisen. Gehen Sie sicher dass Sie für jede Textur die UV Option aktivieren und den richtigen Kanal im Map To Panel einstellen. Wenn Sie die Farbtextur als Bumpmap verwenden wird das etwas komisch aussehen. Sie können die Texturfarbe mit der Objektfarbe mischen, wenn Sie das wollen. Ziehen Sie dazu einfach den Col Wert etwas nach unten in Richtung 0.
Sie können Ihre Textur auch noch in den UV-Editor laden, wenn Sie die UV-Koordinaten etwas anpassen wollen, oder auch wenn Sie mit den Blender-internen Zeichenwerkzeugen arbeiten wollen. Um zu Rendern muss die Textur aber nicht extra geladen werden da Sie ja die Texturen im Material zugewiesen haben.
Links
[Bearbeiten]Die englischsprachige Vorlage dieses Textes