Wichtige Anmerkung: Bitte nehmt Euch eine Minute Zeit, die Nutzungsbedingungen für Tutorials zur Kenntnis zu nehmen.
Kurzfassung: Dieses Tutorial gewährt einen Einblick in die Texturierungswerkzeuge in Blender. Wir verraten die Geheimnisse der Ambient Occlusion, wie man Glanzlichter erzeugt, auf welche Weise das Blender-Lichtsystem konfiguiert werden kann, wie man den Node Editor verwendet und wie man Bump Maps erzeugt und bearbeitet. Das Tutorial gilt für alle bisherigen Blender-Versionen bis zur derzeit empfohlenen Version 2.49b und Jass2.
[machinimatrix pub sculpted_prims_4 640 360 mp4]
Zielgruppe:
- Ersteller von “Sculpted Prims” für Second Life und ähnliche virtuelle Umgebungen
- Blender-Neulinge (geringe/mittlere Vorkenntnisse)
Voraussetzungen (*):
- Herunterladen: jass-2 (binäre Distribution, umfasst blender-2.49b, python-2.6.4, primstar-1.0.0 und mehr)
Verwandte Tutorials:
- Blender primer (Erste Schritte in Blender)
- Sculpted Prims I
- Sculpted Prims II
- Sculpted Prims III
Separate Downloads:
(*) Wenn man sich nicht für Jass-2 entscheiden möchte, kann man die nötigen Tools auch einzeln herunterladen:
Transkription
Hallo und Willkommen!
Dies ist das nächste Tutorial in unserer Serie über das Bearbeiten von Sculpted Prims in Blender. Heute werden wir einen eingehenderen Blick auf das Texturieren werfen. Unser Hauptziel dabei wird sein, unseren Zylinderhut einiges glamouröser erscheinen zu lassen. Bislang haben wir ein sehr einfaches Grundmaterial für unseren Hut hergestellt. Wir haben die Textur gebacken und erhielten einen fast komplett schwarzes Bild mit einem roten Bereich für das Hutband. Von dort aus werden wir nun fortfahren mit der Einführung einiger weiterer Texturierungstechniken.
Im einzelnen werden dies sein:
- Wir fügen dem Objekt Ambient Occlusion (“Verdecken der Umgebung”, Schatten) hinzu.
- Wir werden einen kleinen Einblick in das Blender-Lichtsystem nehmen,
- um dann noch lichtabhängige Schatten
- und farbige Lichteffekte hinzuzufügen.
- Ganz am Schluss werden wir noch sehen, wie man Aussehen und Materialeigenschaften noch mehr durch Erstellen und Bearbeiten von Bump Maps für unsere Texturen verbessern können.
Ambient Occlusion
Mit dem Begriff Ambient Occlusion (kurz: AO) wird die Beleuchtung unserer Szene mit ausschließlich diffusem Licht verstanden. Da diffuses Licht unabhängig von einem bestimmten Einfallswinkel ist, kann die AO-Berechnung unabhängig von Kamerastandpunkt und Ausleuchtung erfolgen. Wie in der Demonstration zu sehen ist, entstehen die einzigen Varianzen in den Objektausleuchtung durch Verdeckungen, die entweder von benachbarten Objekte oder eigenen Objektteilen hervorgerufen werden.
Mit abnehmendem Öffnungswinkel erhält die Kante zwischen den beiden Flächen immer weniger Umgebungslicht, so dass sie dunkler und dunkler erscheint. Obgleich Ambient Occlusion an sich eine künstliche Berechnung ist, hilft sie uns, ein Objekt realistischer aussehen zu lassen, und da sie nicht von einer Kameraposition abhängig ist, kann sich problemlos mit in eine Textur eingebacken werden.
Lasst uns nun sehen, wie wir diese Ambient Occlusion für unseren Hut benutzen können. Unglücklicherweise ist der Hut gegenwärtig komplett schwarz, und deshalb wird der ganze Effekt der Ambient Occlusion praktisch unsichtbar bleiben. Lasst uns deshalb die Hutfarbe erst einmal nach weiß ändern, um später zum schwarz zurückzukommen.
- Wählt den Hutkörper und wechselt in den Edit Mode.
- Stellt sicher, dass Ihr Euch im Edit-Tastenfeld befindet.
- Wählt über den Material Index-Wähler das schwarze Material.
- Klickt auf die schwarze Farbfläche und ändert sie nach weiß. Der Hut wird nun grau werden.
Im folgenden Handlungsablauf werden wir ein paar kleine Änderungen am Modell vornehmen, um das Backen der Textur zu optimieren. Es ist immer eine gute Idee, das Modell als Original unangetastet zu lassen und stattdessen an einer Kopie weiterzuarbeiten.
- Lasst und in den Object Mode zurückkehren und den Hut auswählen,
- dann wählt mit Hochstelltaste + rechte Maustaste die Schleife und den Bogen aus.
- Kopiert nun die Auswahl mittels Hochstelltaste + D und
- klickt sofort daraufhin die linke Maustaste.
Jetzt haben wir zwei separate Objekte, die sich ganz präzise gegenseitig durchdringen. Wir werden eines der Objekte auf einen anderen Ebene (Layer) auslagern und diese Kopie als Referenzmodell behalten.
- Drückt die Taste M. Eine kleine Ebenenbox öffnet sich.
- Wählt Ebene 6 aus.
- Ihr habt nun eine Kopie Eures Objekts auf Ebene 6 und eine weitere auf Ebene 1. Geht zu Ebene 1 und wählt dort das Objekt aus.
- Vergewissert Euch, dass Ihr auch die Map “UV-Tex” ausgewählt habt, die im vorangegangenen Tutorial angelegt worden ist. Wir werden diese Map für unsere weitere Arbeit benötigen.
- Geht in den Edit Mode und wählt alle Vertices des Hutes.
- Erstellt im UV-/Bildbearbeitungsfenster ein neues Bild [Menü unten:
Image -> New Image
] - Seid großzügig und wählt eine große Bildgröße aus. Für unsere Zwecke ist eine Größe von 1024 Pixeln pro Seite angemessen. Gleichwohl könntet Ihr auch noch einen größeren Wert einstellen, wenn Euer Objekt viele feine Details aufweisen soll.
- Benennt das Bild “AO-map”.
- Wechselt in das Funktionsfeld “Shading” und wählt dort das Tastenfeld “World”.
- Sucht nach der Taste “Ambient Occlusion” und aktiviert sie.
- Belasst alle bei den Standardwerten und backt einfach nur die Ambient Occlusion-Map durch Navigieren zu
Render -> Bake Render Meshes -> Ambient Occlusion
. Möglicherweise braucht es ein paar Sekunden, bis die Map generiert worden ist.
Lasst uns die Map einmal näher betrachten. Wenn Ihr dort schwarze Dreiecke eht, dann ist das sehr wahrscheinlich deshalb, weil wir einen Pol auf der Oberseite des Hutes haben. Wir werden das gleich korrigieren. Wenn Ihr genau hinschaut, seht Ihr, dass die benachbarten Objekte einen Einfluss auf die Menge an Dunkelheit haben. Dies ist deshalb so, weil das Umgebungslicht durch benachbarte Objekte verdeckt wird. Im vorliegenden Fall geschieht dies durch die Schleife und den Bund. Ihr könnt ebenso genau die Kante der Krempe erkennen. Allerdings sieht das ganze etwas körnig aus. Für eine gute Ambient Occlusion Map sollten wir das korrigieren.
Als erstes kümmern wir uns um die Dreiecke:
- Wechselt in den Edit Mode,
- geht in das Edit-Tastenfeld,
- sucht nach dem Pol und markiert dessen Vertices.
Ihr könnt oben rechts in der Menüleiste erkennen, wie viele Vertices, Edges und Faces Ihr im Augenblick ausgewählt habt. Es sollten jetzt acht Vertices markiert sein.
- Geht nun wieder ins Edit-Tastenfeld und klickt einmal die Taste “Smooth”.
- Es wird eine Öffnung auf der Hutoberseite erzeugt. Kümmert Euch nicht darum, wir werden diese später wieder schließen.
- Wechsle in den Bereich “Shading” und sucht innerhalb der “World”-Tasten wieder nach “Ambient Occlusion”.
- Ändere die Anzahl der Samples (Proben) auf 20. Dieser Wert wird den Weichheitswert Eurer Map bestimmen. Dadurch wird aber auch die Berechnung der Map länger brauchen. Aber keine Angst, Ihr habt das nur einmal zu machen, sofern Ihr Euer Modell nicht noch einmal verändern wollt.
- Nun backt Ambient Occlusion noch einmal. Ihr könnt in der Zwischenzeit eine Kaffeepause einlegen.
Zu einem späteren Zeitpunkt werdet Ihr vielleicht entscheiden, die Map größer zu machen oder noch mehr Samples zu wählen. Für den Moment ist unsere Ambient Occlusion aber gut genug. Außerdem werdet Ihr die Map später noch einmal machen müssen, und vielleicht wollt Ihr es doch nicht allzuoft machen, weil es einfach zeitaufwendig ist. Wir haben nun als die Ambient Occlusion in eine AO-Map gebacken. In Second Life schnappen wir uns einfach die Farbenpipette, kolorieren den Hut und fertig. Doch was ist, wenn wir das rote Band zurückhaben möchten? Ist das nicht in der AO-Map enthalten?
Deshalb werden wir nun nach einem Weg schauen, wie wir die Textur und die AO-Map zusammen backen können:
- Geht in das Edit-Menü und
- wählt alle Vertices aus.
- Wechselt nun zu Eurer Huttextur.
- Ihr wollt vielleicht ein neues Bild mit einer angemessenen Größe erzeugen. 512×512 Pixel sollten passen.
- Zum Schluss backt nur die Textur.
Eigentlich hofften wir, dass wir folgendes zu sehen bekommen: Wenn wir den Darstellungstyp (Draw Type) auf “Textured” ändern, sollte ein komplett weißer Hut mit einem roten Band erscheinen. Doch seht ihr, wie anders das Modell nun aussieht? Dreidimensionale Details sind praktisch nicht zu erkennen. Springt zwischen der AO-Map und der Textur hin und zurück. Seht Ihr, wie schön die dreidimensionalen Eigenschaften durch die Ambient Occlusion Map herausgearbeitet werden? Wäre es dann nicht schön, beides – die Farben und die Ambient Occlusion – zusammen in einer Textur zu haben? Hier ist der Trick:
- Stellt sicher, dass Ihr Euch im Edit Mode befindet und alle Vertices markiert sind.
- Außerdem tragt dafür Sorge, dass die Huttextur im Image Editor ausgewählt ist.
- Geht nun in das Funkionsfeld “Shading” und
- wählt die Tasten für “Material” aus.
- Sucht nach dem Texturenstapel und fügt diesem eine neue Textur hinzu.
- Benennt sie “AO-texture”.
- Geht zu den “Texture”-Tasten und wählt den Texture Type (Texturentyp) “Image” aus.
- In der sich öffnenden Auswahlbox wählt Ihr “AO-map”.
Dadurch haben wir gerade die AO-Map dem Texturenstapel zugeordnet und es ist wieder Zeit für Render -> Bake Render Meshes -> Texture only
.
Doch das ist noch nicht das Ergebnis, das wir erwartet haben. Was fehlt? Die Ambient Occlusion wurde unter Zuhilfenahme der UV-Map des Sculpties generiert. Dies ging automatisch und geräuschlos vonstatten, während wir die AO-Map gebacken haben. Dies war sogar eine gute Entscheidung, denn man kann die AO-Map nun einfach ohne jede weitere Änderung auf dem Sculptie benutzen. Doch jetzt wollen wir diese Textur als Bild einsetzen. Also benötigt Blender die Kenntnis davon, wie eine Map korrekt auf Euer Modell aufgebracht werden kann. Dies erzielt man wie folgt:
- Geht zu den “Material”-Tasten,
- wählt die AO-texture aus (sofern nicht bereits ausgewählt),
- wechselt zum Karteireiter “Map Input”,
- drückt auf die Taste “UV” und legt fest, welche UV-Map für das Backen gewählt werden soll. Selbstverständlich ist es dieselbe Map, die wir mit einbezogen haben, bevor wir die AO-Map namens “UV-Tex” gebacken haben.
- Nun backt wieder
Render -> Bake Render Meshes -> Texture only
Das Ergebnis ist unser Grundtextur-Material in harmonischer Mischung mit der Ambient Occlusion Map. Doch halt, wir sind noch nicht fertig! Das rote Band zeigt noch keine Ambient Occlusion-Effekte. Warum ist das so? Weil wir die AO-Map bisher nur auf das schwarze Material angewendet haben und das Hutband-Material bislang noch nicht berücksichtig worden ist. Wir wollen dies gleich korrigieren:
- Geht in das Edit-Tastenfeld
- wählt mittels “Material Index Selector” das Hutband-Material aus,
- wechselt zu den “Material”-Tasten und
- wählt in der Texturenauswahl die bereits existierende AO-texture. Dadurch wird diese zuvor schon erzeugte AO-Textur für das Hutband wiederverwendet. Doch wir müssen noch zum Karteireiter “Map Input” wechseln.
- Dort drückt auf die Taste “UV” und sagt Blender abermals, in welche UV-Map gebacken werden soll.
- Den Abschluss bildet wieder
Render -> Bake Render Meshes -> Texture only
Doch die Enttäuschung ist groß, denn das Hutband bleibt verschwunden. Warum nur? Weil wir in eine Falle getappt sind. Irgendetwas ist unserer Aufmerksamkeit entgangen. Deshalb gehen wir noch einmal zum “Shading”-Tastenfeld zurück und überprüfen die Karteikarte “Map To” des Materials. Wir sehen, dass der Blend Type (Mischungstyp) auf “Mix” gesetzt ist. Was wird denn da gemixt? Alles von dem Stapel oberhalb der gegenwärtig ausgewählten Textur wird mit eben dieser gemixt. Da sich aber oberhalb der augenblicklich ausgewählten Textur nichts weiter auf dem Stapel befindet, wurden stattdessen die Einstellungen des Grundmaterials des Hutes verwendet. Der Betrag des Mixens ist abhängig vom Wert der Farbvariable. Gegenwärtig ist dieser Wert auf 1 gesetzt, und daher überlagert die gegenwärtige Textur auf dem Stapel alles, was sich darunter befindet.
Also wurden weder das Hutband noch der Hutkörper gerendert. Allein die AO-Map ist momentan zu sehen. Wir haben verschiedene Möglichkeiten fortzufahren. Die einfachste Lösung ist, Mix-Value (Mischungsverhältnis) auf 0.5 herabzusetzen, was bewirken würde, was es verspricht: Es mischt das Basismaterial und die Ambient Occlusion-Map jeweils mit einem Wert von 50 Prozent. Doch diese Option führt zu verwaschenen Texturen.
Eine Verbesserung könnte durch den Blend Mode (Mischungmodus) namens “Overlay” für das Hutband erreicht werden. Setzt auch Color Value (Farbwert) auf 1. Das wird eine wesentlich kontraststärkere Farbwertdefinition ergeben und dennoch weiterhin die Ambient Occlusion beinhalten.
Eine weitere und wohl die beste Option ist, die Ambient Occlusion Map als Multiplier (Multiplikator) auf das Hutband anzuwenden. Auf diese Weise wird lediglich die Lichtintensität der Textur beeinflusst. Ihr solltet etwas mit den Farbwerteinstellungen spielen, bis Ihr ein zufriedenstellendes Ergebnis erzielt. Lasst uns nun aber endlich das Material wieder schwarz machen:
- Geht in das Edit-Tastenfeld,
- wechselt zum Material “hat-base”,
- und macht “hat-base” wieder schwarz.
- In den “Map To”-Einstellungen für den Hutkörper setzt den Farbwert (Color Value) auf 0.5.
Dies wird schließlich zu einem dunkelgrauen Hut führen, auf dem aber immer noch die Ambient Occlusion sichtbar bleibt.
Bis jetzt haben wir eine Textur erzeugt, die unsere Grundmaterialien – nämlich den schwarzen Hutkörper und das rote Hutband – enthält. Hinzugefügt haben wir Ambient Occlusion durch einfaches Nutzen der AO-Map als Textur auf dem Texturenstapel. Nun wollen wir noch einige gesonderte Lichter hinzufügen und diese letztlich auch in die Textur einbacken.
Ausleuchtung
Wir wollen uns zunächst einmal anschauen, was wir mit Blenders Standardausleuchtung sehen können. Hierzu klicken wir auf:
Render -> Bake Render Meshes -> Full Render
Ach herrje, das ist aber enttäuschend! Irgendwie sollten wir lieber noch einiges an Licht hinzuzufügen. Bitte beachtet, dass wir normalerweise Licht dergestalt platzieren, dass alle Objekte vom Kamerastandpunkt aus gut zur Geltung kommen. Ihr würdet Euch normalerweise nicht unbedingt um Objektteile kümmern, die sich auf der kameraabgewandten Seite befinden. Doch für das Backen von Texturen kann man so nicht verfahren und Ihr müsst die Ausleuchtung in einer anderen Art vornehmen. Hier ist ein möglicher Weg, den man wählen kann:
Insgesamt werden wir vier Lampen verwenden. Beim Arbeiten werden wir eine ungefähre Idee davon bekommen, wie das Licht unsere Texturen beeinflusst. Dazu können wir den Darstellungstyp (Draw Type) “Shaded” verwenden. Dieser Modus simuliert die Lichteffekte in Echtzeit. Doch passt an dieser Stelle auf: Wenn Euer Computer nicht schnell ist, Euer Modell viele Faces besitzt oder Ihr viele Lichter in Eurer Scene platziert habt, bindet die Shading-Ansicht große Mengen Eurer Rechnerkapazität. Wenn Blender also einfrieren sollte, habt Ihr etwas von den zuvor erwähnten Dingen zu reduzieren.
- Im Darstellungstyp “Shaded” geht in das Funktionsfeld “Shading”.
- Dort sucht nach den Lampen-Tasten.
- Wechselt in die Draufsicht. Dies hilft dabei, gute Platzierungen vornehmen zu können.
- Fügt ein neues Hemi-Light (Halbkugellampe) hinzu über
Add -> Lamp -> Hemi
. - Platziert dieses Licht neben der Kamera und leicht oberhalb des Hutes. Dreht es so, dass es auf den Hut zeigt. Für die Feineinstellung wechselt zwischen Draufsicht, Frontansicht und Seitenansicht.
- Reduziert nun den “Dist”-Wert dergestalt, dass die rosafarbige Linie so lang ist wie der Abstand zwischen Lampe und Modell.
- Geht wieder in die Draufsicht und fügt zwei weitere Hemi-Lamps hinzu, die in Relation zur ersten Lampe + 120° bzw. -120° gedreht werden.
Hier eine schnelle Methode, um dies zu bewerkstelligen:
- Platziert den 3D-Cursor auf der Oberseite des Hutes.
- Setzt den 3D-Cursor als Drehpunkt (Pivot) fest.
- Wählt das Hemi-Light aus und erstellt eine Kopie mittels Hochstelltaste + D.
- Klickt sofort danach die linke Maustaste.
- Drückt die Taste R und gebt über die Tastatur 120 ein.
- Erstellt eine weitere Kopie und rotiert diese abermals um 120°
- Fügt schließlich noch ein viertes Licht hinzu, das direkt von oben auf den Hut strahlt.
- Setzt nun den Darstellungstyp auf “Texture”, um zu sehen, wie die Textur backen wird.
- Dann markiert den Hut und startet ein weiteres Full Render, um die Änderungen begutachten zu können.
Noch immer sehen wir keine wesentlichen Verbesserungen. Das Modell erscheint immer noch recht künstlich. Was wir noch immer vermissen, ist eine interessante Materialstruktur. Hier könnten wir wirklich eine Menge Aufwand beim Texturieren treiben. Aber bevor wir dies tun, wollen wir dem Hut noch etwas Glanz und Kontur verleihen.
Glanzlichter backen
Wechselt zurück in den Darstellungstyp “Solid”. Ihr seht nun ein paar Glanzlichter auf dem Hut. Diese Lichter hängen ganz vom jeweiligen Kamerastandpunkt ab. Auf der anderen Seiten können wir der Textur aber nur statische Informationen hinzufügen, die vom Kamerastandpunkt unabhängig sind. Doch wir können einen Trick anwenden und ein Node-gestütztes Material erzeugen, dessen Glanzlicht-Informationen für die Bearbeitung der Textur verwendet werden kann. Doch Vorsicht, denn besagter Trick führt nicht immer zum gewünschten Ergebnis. Es bedarf einiger Experimente, um herauszufinden, wie man das Licht einsetzen muss, damit man an den gewünschten Stellen die Reflektionen erzielt. Setzt man diesen Trick aber behutsam ein, kann man damit dem endgültigen Ergebnis interessante Effekte hinzufügen. Doch bei alledem behaltet im Hinterkopf, dass dies nur Pseudo-Reflexionen sind, die unter Umständen sogar im störendem Widerspruch zu den Visualisierungen der Rendering Engine in Second Life stehen können.
Lasst es uns dennoch einmal ausprobieren. Wenn Ihr es nicht gleich beim ersten Mal versteht, versucht es einfach immer wieder. Es ist bei weitem einfacher, als es zunächst den Anschein haben mag. Also fangen wir mal an:
- Überzeugt Euch, dass Ihr das schwarze Material ausgewählt habt,
- geht in das Funktionsfeld “Shading”,
- schaut nach dem Karteireiter “Link and Pipeline” und aktiviert “Nodes”.
- Jetzt ist dieses Material Node-gestützt und Ihr könnt es über den Node-Editor bearbeiten.
- Lasst uns dafür den Bildschirm teilen und den Node-Editor öffnen.
Ihr seht zwei Boxen: Die linke Box ist der Material Node und die andere ein Ausgabemonitor, der das resultierende Material anzeigt. Den Material Node werden wir nun durch ein Extended Material (Material mit erweiterten Eigenschaften) ersetzen. Wir tun dies, weil die einfacheren Materialien nicht den Glanzlichterkanal besitzen, den ein Extended Material aufweisen kann.
- Entfernt also den Material Node (Materialknoten) zunächst durch Markieren
- und dann durch Drücken der Taste X oder der Entf-Taste.
- Fügt ein Extended Material hinzu über
Add -> Input -> Section.
- Fügt des weiteren einen Mixer Node (Mischerknoten) aus der Toolbox durch Drücken der Leertaste, gefolgt von
Add -> Color -> Mix
, hinzu. Wir benötigen diesen Mixer, um Glanzlicht- und Farbinformationen zu mischen. - Ihr seht, dass der Mixer Node bereits mit dem Material Node verbunden ist. Wir werden diese Verbindung etwas verändern, indem wir den Diffuse Connector zum Specularity Connector ziehen. Hierzu klicken wir lediglich auf die Specularity Connection, ziehen sie auf den zweiten Farbeingang des Mixer Nodes und setzen die Maus ab. Die Verbindung ist daraufhin geändert.
- Wir verbinden den Mixer mit den Out Node und lassen die Maus los.
Zwar sind jetzt schon die Nodes konfiguiert, aber der Material Node muss noch immer mit einem bestehenden Material verbunden werden. Geht zum Material Node und wählt dort das schwarze Material aus dem Auswahlfeld. Das Node-gestütze Material ist nun einsatzbereit. Führt abermals Render -> Bake Render Meshes -> Full Render
aus und betrachtet Eure Ergebnisse. Dabei stellt sicher, dass Ihr Euch im Darstellungstyp “Texture” befindet.
Lasst uns woanders hingehen. Zwar wäre noch viel Raum für Verbesserungen, aber das Aussehen des Huts wird schon einiges interessanter. Durch die Anwendendung von Glanzlichtern hat der Hut weitaus mehr an Kontur gewonnen.
Doch nun zu einer weiteren Verbesserung: Schaut Euch die Oberkante des Hutpopfs an. Dort seht Ihr einen Glanzeffekt, der aber nicht sonderlich gut definiert ist. Der Grund ist, dass das Modell eine vergleichsweise grobe Gitternetzstruktur aufweist, wohingegen die Textur eigentlich auf einer weitaus feineren Struktur erzeugt und dann erst auf das grobmaschigere Gitternetz gebacken werden sollte (“baked to the low poly mesh”). Wir werden auf diese Technik später noch zurückkommen. Doch für den Moment können wir einfach die Anzahl der Subsurf Levels um einen oder zwei hochsetzen und dann ein weiteres vollständiges Backen durchführen.
- Geht in das Edit-Funktionsfeld,
- findet den Modifier Stack (Bearbeitungswerkzeug-Stapel),
- erhöht die Anzahl der Render Levels um 2.
- Jetzt backen. Dies wird bereits eine deutliche Verbesserung bewirken.
Nach dem Backen sind alle feinen Details in der Textur erkennbar, so dass Ihr diese ohne Erhöhung der Anzahl von Gitternetzflächen einfach in die Textur integrieren und auf Eurem grobmaschigeren Modell aufbringen könnt. Spielt nun etwas mit der Ausleuchtung und beobachtet, wie sich die Glanzlichter bei Änderungen der Lichteinstellugen verändern.
Beispielweise könntet Ihr ruhig einmal ein bißchen experimentierfreudig sein und Eure Lichter einfärben. Überprüft, ob ihr im Darstellungsmodus “Shaded” seid, damit ihr die Änderungen in Echtzeit überwachen könnt. Behaltet außerdem im Auge, dass die Summe aller Lichter gemeinsam mehr oder weniger weiß ergibt. Beispielsweise benutzt einmal das erste Licht in rot, das zweite in grün und das dritte in blau und “malt” damit letztlich mit diesen Lichtquellen auf den Hut. Überprüft die Ergebnisse stets im Darstellungsmodus “Texture” and startet ein weiteres vollständiges Backen.
Es ist an der Zeit, uns den Texturenstapel noch einmal vorzunehmen und der Oberfläche noch mehr Struktur hinzuzufügen. Ein realistischer Zylinderhut würde aus Filz oder einem anderen vergleichbaren Material bestehen. Also wollen wir versuchen, unserem Hut eine entsprechende Textur zuzuordnen. Hierzu werden wir eine prozedurale Textur verwenden:
- Wählt im Edit-Funktionsfeld das schwarze Material aus.
- Geht in das Tastenfeld “Shading”.
- Begebt Euch dort zum Texturenstapel, erzeugt eine neue Textur und benennt sie “felt”.
- Wechselt zu den Texture-Tasten und wählt “Texture Type (woro-noi)”
Ein vollständiges Backen wird erweisen, was passiert. Hierbei kommt es aber zu einer weitere Überraschung: Warum ist der Hut denn nun dunkelpink mit schwarzen Punkten?
Aus bestimmten Gründen haben die Blender-Entwickler pink als Grundfarbe jeder Textur gewählt. Wir werden das auch gleich ändern. Doch lasst uns rekapitulieren, was wir in erster Linie erreichen wollten: Der Hut sollte aussehen, als ob er aus Filz gemacht ist. Daher scheint auch die Größe der dunklen Flecken verkehrt zu sein, weil wir an sich ein viel feineres Ergebnis erwarten.
Lasst uns also anfangen:
- Ermittelt, wo sich die “Noise Size Setting” im Tastenfeld “Texture” befindet.
- Ändert den Wert auf 0.02 oder einen anderen Wert nach Geschmack.
- Wechselt zum Tastenfeld “Material”.
- Auf dem Karteireiter “Map To” ändert Ihr die “Secondary Color” (Sekundärfarbe) von pink nach weiß.
- Erneut backen.
Die Größe der Flecken ist aber immer noch viel zu groß. Dies werden wir im Funktionsfeld (Karteireiter?) “Map Input” ändern:
- Ändert die Größeneinstellungen von 1 auf 40 in allen Richtungen.
- Erneut backen.
Der Hut ist nun schon fast so, wie wir ihn haben möchten, wenngleich er inzwischen hellgrau geworden ist. Dies ist passiert, weil wir als Sekundärfarbe weiß gewählt haben. Zwar könnten wir grau wählen, wodurch der Hut dunkler erscheinen würde, doch wir haben noch einen anderen, viel besseren Trick parat:
- Geht auf den Karteireiter “Map To”,
- schaltet dort Farbe aus (“Col”?) und dafür “Nor” ein. Dadurch wir die Textur nicht mehr die Farbe ändern, sondern die (Flächen-)Normalen beeinflussen.
- Die Effektwirkung kann mit dem Nor-Wert 1.5 festgesetzt werden.
- Backen und überprüfen.
- Reduziert noch die Glanzlichter, denn Filz ist nicht glänzend.
- Schließlich noch einmal backen.
Durch Verwendung einer Rauschen-Textur als Normal-Map können wir also ein Material erzeugen, das an Filz erinnert. Gewiss könnten wir noch weitere Verbesserungen herausfinden, und es gibt auch noch viel bessere Herangehensweisen. Wenn Ihr weitere interessante Methoden kennt, dann teilt sie usn doch einfach mal mit.
Bump Maps
Kommen wir nun zurück zum roten Hutband: Es sieht noch immer aus, als ob es auf den Hut aufgepinselt wäre. Wir wollen nun versuchen, es so erscheinen zu lassen, als ob es um den Hut herumdrapiert worden ist. Selbstverständlich könnten wir dieses Detail auch durch direktes Einmodellieren in die Gitternetzstruktur erzielen. Doch ich möchte Euch einfach mal zeigen, wie man mittels einer Bump Map Details, die an sich einer höheren Auflösung bedürfen würden, auf einer Struktur aus vergleichsweise wenigen Polygonen darstellen kann. Doch bevor wir praktisch tätig werden, möchte ich Euch zumindest eine gewisse Ahnung von der dahinterstehenden Idee vermitteln:
Bitte erinnert Euch wieder daran, dass dieser Hut mit 8 Faces in X und 8 Faces in Y erstellt worden ist. Demnach ist er in Blender nur aus 64 Faces aufgebaut. In Second Life hingegen zählen wir 32 x 32 Faces, macht also insgesamt 1024 Faces. All diese zusätzlichen Flächen werden über den Subsurf Modifyer berechnet und werden während des Backens in die endgültige Sculptmap einbezogen.
Um sehen zu können, was geschieht, werden wir Blender jetzt veranlassen, uns diese zusätzlichen Flächen auf dem Modell anzuzeigen. Doch statt das originale Modell zu verwenden, werden wir zunächst einmal noch eine weitere Kopie davon anlegen:
- Geht in den Object Mode.
- Stellt sicher, dass der Hut ausgewählt ist.
- Außerdem wählt auch die Lichter aus. Wir werden sie in ein paar Sekunden benötigen.
- Drückt nun Hochstelltaste + D und daraufhin sofort die linke Maustaste.
- Drückt die Taste M und verschiebt die Kopie auf Ebene 5.
Wir haben somit unser Modell mitsamt unserer Ausleuchtung auf Ebene 5 kopiert. Wechselt zu Ebene 5 und wählt den Hutkörper aus.
- Geht in das Edit-Tastenfeld und macht den Modifier-Stapel ausfindig.
- Ihr werdet dort einen Subsurf-Modifier finden. Überzeugt Euch davon, dass Level 2 eingestellt ist.
- Klickt auf die Taste “Apply” im Modifier.
- Zum Schluss wechselt in den Edit Mode.
Was Ihr nun sehen könnt, ist fast identisch mit dem, was wir später nach Second Life hochladen werden. Das Modell besteht nunmehr aus 32 mal 32 Faces. Sehr viel mehr Spielraum für sehr viel feinere Detaillierung besteht aber nicht. Doch wir machen jetzt ein Expriment: Wir fügen einen weiteren Subsurf Modifier hinzu, setzen den Subdivision Level um 3 hoch und wenden dann den Modifier an. Auf diese Weise erhalten wir ein sehr engmaschiges Gittermodell, das mehr als 64000 Faces besitzt. Tatsächlich habe ich denjenigen Betrag gewählt, der die Verwendung einer Textur von 256 mal 256 Pixeln zu verwenden und die Zuordnung von genau einem Pixel pro Face erlaubt.
Jetzt wollen wir unserem feinmaschigem Modell ein wenig Rauschen angedeihen lassen. Wir aktivieren das Proportional Edit Tool und wählen den Modus “Random Fall-off”. Dann wählen wir nur einen Vertex aus und skalieren ihn auf- und abwärts, während wir den Bearbeitungsbereich mehr und mehr erweitern. Sobald der Zylinderhut wie ein Igel aussieht, halten wir inne und führen ein vollständiges Backen dessen durch, was wir gerade vor uns haben. Nun enthält die Oberfläche die Lichteffekte der verrauschten Oberfläche.
Wechselt in Ebene 1 und seht nach, wie dieselbe Textur auf dem grobmaschigen Hut wirkt. Dieser wirkt ähnlich wie das feinmaschige Modell, zumindest bis zu einem gewissen Grade. Ihr seht also, dass man zumindest prinzipiell eine Textur benutzen kann, um Eurem Objekt weitere feine Details hinzuzufügen, ohne dass der Gitternetzstruktur selbst mehr Vertices und Faces hinzugefügt werden müssten.
Wir könnten den gesamten Vorgang aber auch auf den Kopf drehen: Statt ein feinmaschiges Modell als QUelle zu verwenden und die Ergebnisse in eine Textur einzubacken, könnten wir ebenso eine besondere, typischerweise schwarz-weiße Textur einsetzen, in welcher der Farbwert jedes einzelnen Pixels in der Textur einen bestimmten Versatz in der Oberfläche entlang der Flächennormalen des jeweiligen Ortes repräsentiert.
Blender hat Bump Maps, Normal Maps und Displacement Maps eingeführt:
Bump Maps können für Simulationen in derjenigen Weise eingesetzt werden, die wir gerade an unserem feinmaschigen Modell gesehen haben. Blender wird einen virtuellen Gitternetzpunkt für jedes Pixel der Bump Map errechnen und diesen Punkt in Abhängigkeit von der Pixelfarbe entlang der Vertex-Normalen höher oder tiefer platzieren. Im Endeffekt simuliert also eine Bump Map einer Oberfläche mit weitaus mehr Details, als die eigentliche Gitternetzstruktur ermöglichen würde. Dementsprechend können niedriger auflösende Gitternetzstrukturen damit besser aussehen lassen, weil sie diese weitaus strukturierter erscheinen lassen, als sie eigentlich sind.
Normal Maps ähneln stark den Bump Maps, nutzen jedoch für die Vertex-Positionsverschiebungen statt eines Graustufenbilds ein RGB-Bild. Daher können Normal Maps verwendet werden, um die virtuellen Gitternetzpunkte in willkürlicher Weise zu bewegen. Man kann also sagen, dass die Bump Maps ein Spezialfall der Normal Maps sind, bei denen die Änderungen lediglich entlang der Vertex-Normalen erfolgen.
Displacement Maps verändern die Gitternetzstruktur direkt beim Backen. Im Gegensatz zu Bump Maps können durch diesen Map-Typ der Textur keine weiteren feinen Details hinzugefügt werden. Der Grad der Verschiebungen ist abermals direkt an den Grauwert der Pixel in der jeweiligen Map gebunden. Schwarz wird einen Vertex einwärts entlang seiner Vertex-Normalen verschieben, weiß wird ihn nach auswärts bewegen.
Die Wirkungen von Displacement Maps können immer auch durch direktes Modellieren der Gitternetzstruktur erreicht werden. Somit sind Displacement Maps für das Erstellen von Texturen von geringerem Interesse. Gleichwohl möchte ich Euch ein schönes Beispiel zeigen, wie wir sie doch für unsere Zwecke einsetzen können. Beachtet, dass unser Modell an sich überhaupt nicht verändert wird. Lediglich während des Backens wird der Baker die Displacement Map beim Berechnen der Textur heranziehen und entweder die auf diese Weise modifizierte Gitternetzstruktur im Render-Fenster oder (in unserem Fall) in die gebackene Textur ausgeben.
Kurz gesagt fügen Bump Maps Eurer Gitternetzstruktur virtuelle Beulen und Falten hinzu, wobei die Ausrichtung der Einbeulungen immer entlang der Vertex-Normalen verläuft. Die Auflösung ist direkt proportional zur Texturgröße der Bump Map. Die Normal Maps verhalten sich wie die Bump Maps, erlauben jedoch willkürliche Richtungen der Einbeulungen. Demgegenüber manipuliert eine Displacement Map immer die Gitternetzpunkt selbst und fügen daher auch keine weiteren Details hinzu.
Wir haben bereits Bump Maps eingesetzt, als es darum ging, eine Filzoberflächentextur zu erstellen. Zu diesem Zweck haben wir Blender so konfiguriert, dass eine Rauschen-Textur als Normal Map verwendet werden konnte. Mit deren Hilfe haben wir eine Oberfläche wie auf einem hochauflösenden Modell erzeugen können.
Jetzt wollen wir uns aber um das Hutband kümmern: Wir werden eine Textur herstellen, die an den Stellen, die sich mit dem Hutband decken, komplett weiß ist, und überall woanders vollständig schwarz. (?!) Diese Map wird eine kleine Erhebung des Bands im Verhältnis zum Hut selbst simulieren. Wir erzeugen die Textur wie folgt:
- Entfernt den feinmaschigen Hut wieder aus Ebene 5, da wir ihn nicht wieder brauchen.
- Wählt den Hut auf Ebene 1 aus.
- Erstellt eine Kopie des Grundmodell des Hutes und platziert diese auf Ebene 5.
- Wechselt zum roten Material “hat-band”.
- Geht in das Funktionsfeld “Shading”.
- Legt ein neues Material namens “white-hat-band” an und macht es weiß.
- Deaktiviert die Taste “Nodes” und schaltet alle Texturen auf dem Texturenstapel aus.
- Stellt im Edit Mode sicher, dass alle Vertices für das Hutband jetzt dem neuen Material zugeordnet sind.
- Wechselt zum schwarzen Material.
- Geht zurück in das Funktionsfeld “Shading”, legt ein weiteres Material an, deaktiviert die Taste “Nodes” sowie alle Texturen auf dem Texturenstapel.
- Alle vertices auswählen.
- Im UV-/Bildbearbeitungsfenster legt ein neues Bild der Größe 1024×1024 an und benennt es “band-bump-map”.
- Abschließend
Render -> Bake Render Meshes -> Texture Only
.
Jetzt haben wir die Bumpmap fertiggestellt. Wir müssen die Map nur noch auf den Hut anwenden:
- Kehrt zurück in den Object Mode und geht auf Ebene 1.
- Wählt den Hut aus.
- Wählt das Material “hat-band”
- und wechselt in das Funktionsfeld “Shading”.
- Fügt dort eine neue Textur hinzu und benennt sie “band-bump-map”.
- Geht zu den Textureinstellungen (Texture Settings),
- setzt den Texturentyp (Texture Type) auf “Image”
- und ladet “band-bump-map”.
- Wechselt zu den Shade-Tasten (in das Funktionsfeld “Shading”?).
- Auf dem Karteireiter “Map Input” aktiviert “UV” und spezifiziert als “UV-Tex”.
- Auf dem Karteireiter “Map To” schaltet “Color” aus und aktiviert “Normals”.
- Wählt für “nor” einen Wert von ungefähr 20.
- Abschließend führt
Render -> Bake Render Meshes -> Full Render
durch.
Zwar ist der Effekt nicht sonderlich hervorstechend, aber er tut seinen Zweck. Gleichwohl können wir einfach mal etwas wagemutig sein und versuchen, diese Map als Displacement Map zu verwenden. Denkt daran, dass der Baker als erstes den Modifier-Stapel vor dem Backen abarbeiten wird. Daher haben wir eigenlich 32 mal 32 Faces für das Displacement zur Verfügung.
- Reduziert also den Wert “nor” auf weniger als 2
- und aktiviert die Taste “disp” in den Einstellungen für “Map-too”.
- Setzt den Displacement-Wert auf etwa 0.15,
- dann führt noch einmal ein vollständiges Backen durch.
Am Ende sieht der Hut aus, als ob er tatsächlich in 3D modelliert worden wäre. Genau das wollten wir erreichen. Lasst uns nun noch einige horizontale Streifen zum Band hinzufügen:
- Stellt im Tastenfeld Edit sicher, dass das rote Material “hat-band-material” ausgewählt ist.
- Fügt im Funktionsfeld “Shading” eine weitere Textur hinzu und benennt sie “silk”.
- Wechselt in das Funktionsfeld “Texture” und setzt den Texturentyp auf “Clouds”.
- Auf dem Karteireiter “Map Input” aktiviert “UV” und spezifiziert als “UV-Tex”.
- Schließlich setzt Ihr noch den Y-Wert auf 10. Diese Einstellung bewirkt horizontale Streifen.
- Auf dem Karteireiter “Map To” schaltet “Color” aus und aktiviert “Normals”.
- Wählt für “nor” den Wert 5.
- Abschließend führt
Render -> Bake Render Meshes -> Full Render
durch.
Genug Unheil angerichtet! Die fertiggestellte Textur dieses Tutorials ist nun bereit zum Hochladen nach Second Life.
Ab jetzt könnt Ihr Euch viel Zeit zum Ausprobieren und Vervollkommnen nehmen. Ich habe Euch längst nicht alle Texturierungsoptionen in Blender gezeigt, sondern nur an der Oberfläche gekratzt.
Im einzelnen haben wir
- eine Ambient Occlusion Map für das Objekt erzeugt,
- einen kurzen Einblick in das Blender-Lichtsystem genommen,
- lichtabhängige Schatteneffekte und
- farbige Lichteffekte hinzugefügt,
- einen Weg gefunden, Glanzlichteffekte zu backen sowie
- schließlich die Anmutung durch Erstellen und Aufbringen von Bumpmaps auf unsere Texturen noch weiter verbessert.
Ihr könnt Hunderte guter Texturierungstutorial im Internet finden. Habt Ihr einmal die Grundlagen dieses Tutorials gemeistert, solltet Ihr in der Lage sein, diesen anderen Tutorials problemlos zu folgen.
Und nun viel Spaß beim Texturieren.
Bis bald!
Weitere Hinweise
Sollte die gebackene Textur nicht mehr im 3D-Ansichtsfenster angezeigt werden, seid Ihr ein Opfer eines gelegentlich auftretenden Blender-Bugs geworden. Was geschieht, ist folgendes: Manchmal, wenn Ihr Euch im Texture Mode befindet (?), seht Ihr unmittelbar nach dem Backen keine Auswirkungen auf Euer Modell. Hier nun ein Weg, wie man dieses Problem bei seinem Auftreten beseitigen kann:
- Geht in den Edit Mode.
- Im UV-/Bildbearbeitungsfenster aktiviert Paint Mode
- und klickt einmal in die Textur. Ihr habt nun der Textur einen Farbpunkt hinzugefügt, wodurch als Nebeneffekt auch die gesamte Textur auf dem Modell wieder zum Vorschein kommt.
- Benutzt Strg + Z, um den gerade getupften Punkt wieder aus der Textur zu entfernen.
Zwar ist das ärgerlich, aber es ermöglicht es wenigstens, mit der Arbeit fortfahren zu können.
Eine noch bessere Alternative ist, seine Arbeit in einer *.blend-Datei (File -> Save
) zu speichern, dann Blender zu beenden, wieder zu starten und daraufhin die gerade gespeicherte Datei wieder zu öffnen. Dadurch wird das Problem auch gelöst.
(Übersetzung: Almut Brunswick, 2011-08-31; http://almut-brunswick.de)