Blender Dokumentation/ Tutorials/ Texturen/ Normal-Maps erstellen

Diese Seite bezieht sich auf Blender v2.43


In diesem Tutorial soll es darum gehen, wie man mit Blender eigenen Mitteln eine Normal-Map erstellt und sie in Blender einsetzt.

Eine Normal-Map wird benutzt, um eine 3D-Struktur durch eine Textur zu simulieren.

Wir werden einen Jutestoff erstellen. Da ich keine Lust hatte eine Jutestruktur zu modellieren, nehmen wir ein Bild von Jutestoff, um die Normal-Map zu erstellen. Das Problem ist allerdings die Wiederholung der Struktur am Rand, es ist sehr schwer einen "Kacheleffekt" zu vermeiden. Mit der gleichen Methode können höher aufgelöste Meshes, auf denen z.B. mit dem Skulpt-Werkzeug gearbeitet wurde, in geringer aufgelöste Meshes mit Normalmap verwandelt werden.

Die grundsätzliche Vorgehensweise ist so:

  • Gering aufgelöstes Mesh unwrappen. Wir können hier schon ein neues, leeres Bild im UV/Image Editor hinzufügen.
  • Optional: gering aufgelöstes Mesh sichern. Ob dieser Schritt nötig ist hängt davon ab, ob die Erstellung des hochaufgelösten Meshes reversibel erfolgt oder nicht.
  • Zu dem Mesh weitere Vertices hinzufügen. Entweder mit Multiresolution, oder über Subdivision-Surfaces, oder mit Subdividing von Hand.
  • Das hochaufgelöste Mesh bearbeiten.
  • Einmal in den Face Select Modus wechseln, das leere Bild im UV/Image Editor zuweisen. Nicht unwrappen!
  • Normals in das neue Bild "baken".
  • Zum gering aufgelösten Mesh wechseln, also entweder die Multiresolution entfernen, oder das Objekt wechseln.
  • Das Bild mit den "gebakten" Normals als UV-Textur gemappte Normal-Map auf das gering aufgelöste Mesh anwenden.


Vorbereitung des AusgangmodellsBearbeiten

 
Abbildung 1: Jute als Vorlage.

Unser Ausgangsmodell ist sehr einfach.

  • Löschen Sie den Würfel aus der Standardszene, und fügen Sie eine Plane in Aufsicht (Num-7) ein.
  • Wechseln Sie in den Edit Mode.
  • Wechseln Sie bei ausgewählter Plane in den UV Face Select-Modus (F).
  • Öffnen Sie das UV/Image Editor-Fenster.
  • Erstellen Sie ein neues, leeres Bild (Image->New) in der gewünschten Auflösung, z.B. 1024x1024.

Die Auflösung hängt von der Anzahl an Faces ihres hochaufgelösten Meshes ab. Für jede dreieckige Fläche (Tri) benötigen Sie einen Pixel, Quads werden in zwei Dreiecke aufgelöst. Bei einem komplizierteren Mesh müssten wir jetzt unwrappen, das ist bei der Ebene nicht nötig, sie ist bereits richtig geunwrapt.

  • Wechseln Sie wieder in den Object-Mode der Plane (F).
  • Erstellen Sie ein Duplikat der Plane und verschieben Sie die Plane auf eine andere Ebene, wo sie nicht stört.

Das Duplikat trägt ebenfalls die UV-Koordinaten der Plane.

  • Erstellen Sie ein Material für das Duplikat.
  • Fügen Sie eine UV-gemappte Bild-Textur hinzu (z.B. die aus Abbildung 1).

Dass die Ebene jetzt ein Material trägt ist eigentlich nicht nötig, aber wir können keine Textur ohne Material erstellen.

3D-Struktur mithilfe eines Bildes erstellenBearbeiten

Wir brauchen jetzt wirklich viele Vertices, darum packen wir ja nachher das Ergebnis in eine Textur. Einen derartigen Aufwand (an Vertices) könnte man in einer echten Szene natürlich nicht betreiben.

  • Die Ebene wird nun zweimal subdividet. Wenn Ihr Computer wirklich viel RAM hat, können Sie auch dreimal subdividen.
  • Aktivieren Sie für die Ebene Auto Smooth, dann klicken Sie auf Set Smooth.
  • Fügen Sie einen SubSurf-Modifier hinzu, wählen Sie Simple Subdiv. aus. Stellen Sie Levels und Render Levels jeweils auf 6 (ausnahmsweise).
  • Fügen Sie einen Displacement-Modifier hinzu, in das Feld Texture tragen Sie den Namen der Textur ein (Abbildung 2).

Im 3D-Fenster sind die Auswirkungen der Modifier gut zu erkennen, passen Sie Kontrast und Helligkeit der Textur, und/oder die Stärke (Strength) des Displacment-Modifiers so an, dass Sie ein befriedigendes Ergebnis erhalten (Abbildung 3).

 
Abbildung 2: Modifier Einstellungen für die Plane.
 
Abbildung 3: Ansicht der Ebene im 3D-Fenster. Ausschnitt.

Normal-Map bakenBearbeiten

 
Abbildung 4: Die erstellte Normal-Map.
  • Wechseln Sie mit der Ebene in den UV Face Select Modus.
  • Weisen Sie der Ebene im UV/Image Editor das leere Bild zu. Nicht unwrappen.

Jetzt wird die Normal-Map erstellt. Das dauert einen Moment.

  • Render->Bake Render Meshes->Normals

Das vorher im UV/Image Editor schwarze Bild wird nun bunt. Die Normal-Map ist fertig.

  • Speichern Sie das Bild mit der Normal-Map auf der Festplatte (Image->Save as...).
  • Das hochaufgelöste Mesh kann nun gelöscht oder sonstwie aus dem Weg geräumt werden.

Den SubSurf- und den Displacement-Modifier können wir zwar entfernen, aber wir haben das Mesh vorher richtig unterteilt, dieser Schritt lässt sich nicht so einfach rückgängig machen.

Im nächsten Schritt werden wir die Normal-Map anwenden.


Die Normal-Map anwendenBearbeiten

 
Abbildung 5: Die Normal-Map angewendet auf eine Ebene.
  • Wir holen das gering aufgelöste Mesh zurück in die Ansicht.

Sie können die Normal-Map dem Mesh zuweisen wenn Sie möchten, das ist aber nicht notwendig, nur wenn Sie im 3D-Fenster kontrollieren wollen, ob die UV-Koordinaten noch stimmen.

  • Wir benützen das vorhin erstellte Material, und weisen es der gering aufgelösten Ebene zu. Aber Sie können natürlich auch ein neues Material erstellen.
  • Erstellen Sie eine neue Textur.
  • Map Iput->UV, Map To->Nor. Die Stärke der Normal-Map (also die Tiefe) stellen Sie über den Parameter Nor ein.
  • Texture Type->Image.
  • Schalter Normal Map auf dem Map Image-Panel aktivieren.
  • Als Bild laden Sie die gerade erstellt Normal-Map (Abbildung 5).

Sie können die Normal-Map aber auch auf andere Objekte mit UV-Mapping anwenden.