Blender 186 – Bake Normal Maps (Cycles)

Das Thema NormalMap wurde hier schon mehrmals angesprochen, extern hergestellt. In diesem Teil geht es allerdings darum NormalMaps innerhalb von Blender zu erstellen indem die Struktur von einem HighPoly- auf ein LowPoly-Objekt übertragen wird.

Skills: Easy
Addon: Nein
Render Engine: Cycles
Download: Fertig vorbereitete Szene zum direkten Einstieg. Download via Mediafire.

 

Was eine NormalMap ist, wozu sie dient und wie man eine NormalMap in einem externen Bildbearbeitungsprogramm erstellt kann in diesen Beiträgen Gimp 037 und Gimp 038 auf dieser Seite nachgelesen werden.

In aller Kürze: Eine NormalMap ist eine Map in bestimmten Farben die 3D-Programme als Höhen- und Tiefen-Information nutzten. So können beispielsweise in Games Details dargestellt werden, über die das Objekt real gar nicht verfügt. Diese nicht vorhandene Geometrie reagiert sogar auf Lichteinfall (Licht und Schatten). So werden Polygone eingespart und die Berechnungszeit sinkt.

Normal Map Effect

Beispiel

 

Voraussetzungen

Um die Übersicht besser zu behalten wird hier auf den Aufbau des Models an sich verzichtet. Was im Vorfeld beschrieben wird sind die Objekte die benötigt und organisiert werden müssen.

Es soll eine Platte (Bodenplatte, Wandverkleidung etc.) mit Noppen vorgetäuscht werden. Der Vorgang wird so ablaufen, dass ein Model mit vielen Polygonen (HighPoly) erst einmal angefertigt wird und die Geometrie später über eine NormalMap auf ein LowPoly-Objekt (wenig Polygone) übertragen wird.

In diesem Fall benötigt man eine einfache Plane, bestehend aus einem einzigen Polygon. Dieses Objekt besteht aus einer Fläche (Face) und 4 Vertices (Eckpunkte) (siehe Bild unten).

Plane (1 Polygon, 4 Vertices)

Plane (1 Polygon, 4 Vertices)

Dieses Objekt dient uns gleich als LowPloy-Objekt und wird im Outliner entsprechend benannt. Im Beispiel wurde es schlicht LowRes (Low Resolution) genannt (siehe Bild unten).

LowRes-Object in Outliner

LowRes-Object im Outliner

Außerdem wird im Outliner eine neue Collection (früher Layers genannt) erstellt und das Objekt dort hineinverschoben. Das funktioniert per Drag and Drop. Im unteren Bereich, unter der Timeline, können Informationen zu dem Objekt ausgelesen werden (siehe Bild unten).

Blender Object Informations

Objekt Informationen

Von dem Objekt LowRes wird dann eine Kopie erstellt (SHIFT-D), in die obere Ebene verschoben und in HighRes (hohe Auflösung) umbenannt (siehe Animation unten).

Blender Collection

HighRes Kopie

Wie schon gesagt wird hier auf die Bauweise nicht wirklich eingegangen. Nur werden hier beispielhaft Teilstücke einer Sphere mit einem Array-Modifier auf der Plane (HighRes) verteilt und mit dem Hotkey STRG-J (Join) vereint, um eine ordentliche Anzahl von Polys zu erzeugen (siehe Animation unten).

Blender 2.8 High Resolution

HighRes Objekt

Ist das LowRes-Objekt im OUtliner vorerst deaktiviert (Augensysmbol Outliner) bleiben in der Leiste unten nur noch die Informationen zum HighRes Objekt. Und das hat zur Zeit 2.426 Vertices und etwas über 2.300 Faces. Nicht dass das wirklich viel wäre aber als Beispiel soll es hier ausreichen (siehe Bild unten).

HighRes Information

HighRes Information

Image Texture und Einstellungen

Soviel zu den Grundvoraussetzungen. Es müssen als zwei Objekte eine niedrig aufgelöste Version mit wenigen Vertices und Faces und eine hochaufgelöste Version, eine grobe Kopie mit wenig Vertices und Faces vorhanden sein. Der eigentliche Vorgang der Entstehung der Nomal Map beginnt hier.

Die LowPoly-Plane wird nun ganz knapp über dem detaillierten Objekt platziert (siehe Animation unten).

Move Plane

Plane platzieren

Dann wechselt ihr bei markiert Low-Poly Plane mit der TAB-Taste in den Edit-Mode, markiert mit Taste A alle Vertices und drückt Taste U für Unwrap (siehe Bild unten).

Low-Poly Unwrap

Low-Poly Unwrap

Spätestens jetzt ist es günstig sich den Bildschirm aufzuteilen. Links Arbeitsbereich, rechts oben UV Image-Editor und rechts unten den Shader-Editor (siehe Bild unten).

Blender Screens

Bildschirmaufteilung

Der nun folgende Schritt beziehungsweise die Folge der Markierung ist sehr wichtig! Im Outliner wird erst das Objekt HighRes  und danach das Objekt LowRes markiert. Weil: Die Geometrie wird vom hoch aufgelösten zum niedrige aufgelösten Objekt übertragen (siehe Bild unten).

HighRes first, then LowRes

Erst HighRes, dann LowRes

Diesen Schritt der Markierung könnte man auch etwas später ausführen aber hier wurde er der Übersicht halber schon jetzt vorgenommen.

Im UV-Editor wird nun ein neues Bild angelegt. Auf diesem Bild wird später die NormalMap erscheinen (siehe Bild unten).

New Image

New Image

Das Bild sollte einen eindeutigen Namen erhalten. Dann könnten noch die Größe angepasst werden, was hier aber nicht nötig ist. Alpha-Kanal wurde deaktiviert, weil ebenfalls nicht benötigt (siehe Bild unten).

Blender UV Image Options

Image Optionen

Jetzt wird ein neues Material benötigt. Dazu klickt man lediglich auf das Pluszeichen, benennt das Material wieder eindeutig und das war es auch schon in diesem Bereich.

Nur noch einmal zum Verständnis: Das Material erhält die LowPloy-Version. Da sie zuletzt markiert wurde betreffen die Änderungen derzeit auch nur dieses Objekt, obwohl beide (High- und Low-Res) markiert sind (siehe Bild unten).

Low Poly Material

Material erstellen (Low Poly)

Nachdem das Material erstellt wurde liegen im Shader-Editor (vor Blender 2.8 Node-Editor) standardmäßig zwei Nodes. Der Material Output und der Principled BSDF. Es wird aber noch ein weiterer Node benötigt. Mit SHIFT-A (Maus im Editor Bereich) wird aus der Gruppe Texture ein Image Texture-Node hinzugefügt.

Ein Klick auf das kleine Bild-Icon erlaubt die Auswahl an vorhandenen Bildern. Hier muss nun das oben angelegte Image ausgewählt werden. Color Space kann auf Non-Color eingestellt werden. Das ist bis hierher ausreichend. Der Texture-Node muss noch nicht mit den anderen Nodes verbunden sein (siehe Bild unten).

Image Textur Node

Image Textur Node

Nun wird in der Properties Panel auf die Render Einstellungen gewechselt. Hier sollte gewährleistet sein das Cycles als Render Engine ausgewählt ist (siehe Bild unten).

Render Engine: Cycles

Cycles festlegen

Weiter unten in den Render Einstellungen findet ihr den Bereich Bake.

 

Bake

Bake Type muss auf Normal eingestellt und Selected to Active muss aktiviert werden. Genau dazu hatten wir HighRes und LowRes angelegt und in der richtigen Reihenfolge markiert. Wobei das zuletzt markierte Objekt LowRes das aktive Objekt ist. Also Active.

Ray Distance wird in diesem Fall nicht benötigt, kann daher auf 0 (Null) bleiben aber man sollte diesen Punkt schon mal im Auge behalten. Andere Objekte benötigen hier Einstellungen.

Zuletzt drückt man den breiten grauen Button Bake ganz oben, um den Backvorgang zu starten (siehe Bild unten).

Blender 2.8 Bake Settings

Bake Settings

Der Fortschritt des Texture Bake kann der Leiste unterhalb der Timeline entnommen werden (siehe Bild unten).

Texture Bake

Fortschrittsbalken

Ist der Backvorgang beendet erscheint im UV Image-Editor die fertige Normal Map. Würden dort nun andere fleckigere Farbflächen erscheinen, dann müsste man bei der Ray Distance Änderungen vornehmen (0.05 bis 1.0 beispielsweise) und den Bake-Vorgang neu starten.

Aber in diesem Fall schaut die Map sehr gut aus (siehe Bild unten).

Blender 2.8 finished Normal Map

Fertige Normal Map

Jetzt kann man im Outliner die HighRes-Version deaktivieren (Augensymbol) und im Shader Editor über SHIFT-A und im Bereich Vector einen Normal Map-Node hinzufügen. Der Node wird zwischen dem Image Texture Node und Principled BSDF abgelegt und wie im Bild unten mit Noodles (Nudeln) verbunden (siehe Bild unten).

Normal Map Node

Normal Map Node

Über den Eintrag Strength bei dem NormalMap-Node kann die Stärke/Höhe verändert werden, falls der Effekt zu gering oder zu stark sein sollte (siehe Bild oben).

 

Das Ergebnis

Wechselt man nun im Arbeitsbereich in die Top-View (Taste 7) und bewegt das Licht dann kann man betrachten wie sich  Licht und Schatten verschieben (siehe Animation unten).

Blender Normal Map Light and Shadows

Licht und Schatten

Auch in Seitenansichten reagiert die Struktur auf Licht und/oder Positionsveränderungen (siehe Animation unten).

Normal Map Effect

Andere Perspektive

Entlarvt wird eine Geometrie die auf einer NormalMap basiert natürlich, wenn man flach über die Fläche schaut. Es ist keine Geometrie vorhanden.

A Plane is a Plane

Plane bleibt Plane

Aber dieser Umstand tut der NormalMap keinen Abbruch. Der Effekt einer NomalMap ist immer wieder beeindruckend. Die Plane mit Noppen besteht lediglich aus 4 Vertices und einem einzigen Face. Auf diese Weise wurden in diesem Fall 2422 Vertices eingespart.

Wie gesagt war die Polyanzahl bei dem HighRes-Objekt noch nicht einmal hoch angesiedelt. Es könne auch leicht 100.000 und mehr Vertices eingespart werden.

Das könnte dich auch interessieren …