Hinweis: Alle Screenshots sind als progressive. jpg gepackt, mit Klick in das komprimierte Bild erhaltet Ihr die große Darstellung.

Die Krönung unsrer Arbeit: die Erstellung der Normalmap

Um unsrer neue erstellten Textur noch einen plastischen Effekt zu verleihen, müssen wir eine sogenannte Normalmap erstellen.
Das sind diese Dateien, die in unsrem Texturenordner auf _n.dds enden. Die Normalmap ist allerdings nur der Textur- Anteil der _n.dds (die zusätzlich noch einen Alphakanal enthält, der für den Glanz zuständig ist).

Wie eine solche Datei prinzipiell aussieht, kann man sich zum bessren Verständnis mal mit DXTbmp anschauen, indem man eine beliebige solche _n.dds öffnet.

Man sieht dann zentral eine hellblaue Fläche, die wie ein blaues Negativ der bunten Textur wirkt. Das sind die mit einem speziellen Normalmap- Filter bearbeiteten RGB (=Farb-) Kanäle.

Rechts oben im kleinen Fenster ist der sogenannte Alpha- Kanal als Miniaturvorschau zu sehen. Dieser kann bei Hauttexturen reinweiß sein, bei Texturen mit Lichteffekten (z.B. Kleidung) erkennen wir dezente weiße oder graue Schatten auf schwarzem Hintergrund.

Im oberen Rahmen des DXTbmp- Fensters sehen wir schließlich die Informationen zum verwendeten DXT- Format.
Wir erkennen beim Öffnen von Spieledateien, daß es nur 2 Varianten gibt:

Hauttexturen werden als DXT1 ohne Alpha- Kanal gespeichert, die andren als DXT5 mit Alpha- Kanal.

Am einfachsten ist es, beim Basteln einer eignen Textur mal die originale Normalmap aus dem Spiel aufzumachen und sich anzuschaun, wie die aussieht und in welchen DXT- Format sie vorliegt. Das erspart später viel Grübelei.


Um sich vorzustellen, wofür eine solche Normalmap gut ist, muß man folgendes wissen und verinnerlichen:

Die hellblaue RGB- Fläche enthält die Daten für Höhen und Tiefen Eurer zugehörigen Textur.

Der Alpha- Kanal dagegen enthält die Informationen über die Lichteffekte,
legt also fest, ob eine Textur reflektiert oder stumpf aussieht, ob Glanzlichter wie bei Fellspitzen oder diffuse Reflexionen wie bei einer metallischen Oberfläche entstehen.

Natürlich sind die Möglichkeiten der räumlichen Verarbeitung solcher Informationen in Eurer Grafikkarte begrenzt: mit einer Normalmap läßt sich keine größere optische Tiefe erzeugen. Was also nicht im 3D- Modell drinsteckt, kann man auch mit der Normalmap nur begrenzt ausbügeln.

Und das Schönste an der ganzen Sache: mit DXTbmp können wir in aller Ruhe RGB- Kanal (Höhen) und Alpha- Kanal (Lichter) separat erstellen und dann zusammenfügen.


Die Anwendung des Normalmap- Filters

Beginnen wir mit dem RGB- (Farb) Kanal.

Wir öffnen mit GIMP unsre im letzten Kapitel erstellte underwear.xcf, also die Arbeitsdatei, in der die einzelnen Ebenen gespeichert sind.
Für eine abgestufte Darstellung der Höhen unserer Textur ist es nämlich sinnvoll, ebenenweise den Normalmap- Filter mit unterschiedlichen Einstellungen auszuführen.
Eurer Experimentierwut sind dabei keine Grenzen gesetzt- im Spiel wird sich zeigen, was Eure Versuche tatsächlich wert sind. Und notfalls macht mans schnell nochmal.

Als erstes maximieren wir das Fenster underwear.xcf und zoomen auf formatfüllende Größe.

Dann aktivieren wir im Ebenenfenster von GIMP die unterste Ebene Hintergrund und wählen aus dem Menü Filter > Abbilden > Normalmap...

Es erscheint ein neues Fenster, in dem die Einzelheiten der Normalmap eingestellt werden können:



Hier lassen wir alles auf Voreinstellung:
- Filter 4x4
- Minimum Z 0,00000
- Height Source: Average RGB
- Alpha Channel: unchanged
- Conversion: None
- DU/ DV Map: none,

lediglich Scale setzen wir auf 0,00000 , denn diese Ebene ist ja quasi die Hautebene und hat keine Erhöhungen.

Mit OK wird der Filter gestartet, als Ergebnis erhalten wir eine hellbaue durchgehende Fläche hinter unseren andren Ebenen.



Ihr solltet Eure Arbeit nun als underwear_n_mod.xcf sichern, falls Euch zwischendurch was abstürzt.

Als 2. Schritt aktivieren wir unsere Ebene 1 im Ebenenfenster und rufen erneut den Normalmap- Filter auf. Gleicher Pfad wie oben, nicht "Normalmap wiederholen" anklicken, sonst läuft der Filter mit den gleichen Einstellungen nochmal durch.

Diesmal stellen wir im Filter- Fenster
- Scale: 8,00000
- Conversion: Max RGB
ein und aktivieren den Button 3D Preview.
Das neue Vorschaufenster sollte noch ein paar Lichtfarben erhalten (ich habe rot und gelb verwendet), dann könnt Ihr eine Vorschau des Ergebnisses sehen, indem Ihr mit gehaltener Maustaste das Vorschaubild kippt.



Ist dies genehm, mit OK den Filter ausführen und unser Ergebnis speichern.

Genauso verfahren wir mit Ebene 2, nur wird hier
- Scale: 14,0000
eingestellt, da diese Schicht (Fellrand) ja höher als die eigentliche Basistextur von Ebene 1 erscheinen soll.



Ausführen, speichern.

So, wir haben nun den ersten Teil unsrer Normalmap fertiggestellt und können dieses Bild als Microsoft Windows BMP Bild, also als .bmp, exportieren. Der Name wäre dann automatisch underwear_n_mod.bmp



Jetzt gehts an den Alpha- Kanal.

Das Fenster können wir nun schließen und öffnen erneut unsre underwear.xcf mit GIMP.

Der Alpha- Kanal ist in unserem Falle nichts weiter als ein Graustufenbild, wobei Weiß für maximale Reflexion und Schwarz für keine Reflexion von Umgebungslichtern steht.

Wir müssen also unser Bild derart umformen, daß entsprechende Grautöne mit Weiß oder Hellgrau an den Stellen enstehen, die später Reflexe erzeugen sollen. Auf deutsch also: Farbfilter anwenden.

Auch hier macht sich das ebenenweise Bearbeiten gut- der klare Vorteil eines Speicherns als .xcf .

Als erstes müssen wir den Hintergrund schwarz umfärben, denn diese Hautebene soll ja keinerlei Reflexe erzeugen.
Wir wählen also die Ebene Hintergrund aus und holen uns das Fenster The GIMP.
Dort gehen wir in den Bereich Vorder- und Hintergrundfarben.
Standardmäßig sollte Schwarz als Vordergrundfarbe aktiviert sein. Falls nicht, durch langes Klicken auf dieses Vordergrundzeichen die Auswahl aufrufen und entsprechend Schwarz einstellen.

Wir gehen zurück ins Fenster underwear.xcf und klicken Auswählen > Alles. Dann wieder ins The GIMP- Fenster, um dort den Button Mit einer Farbe oder einem Muster füllen anzuklicken.

Hier wählen wir im unteren Teil Füllart: VG- Farbe (vordergrund) und Ganze Auswahl füllen.



Maus ins Fenster underwear.xcf führen, klicken und gedrückt ziehen. Schon färbt sich die gesamte Ebene schwarz. Hierzu gibts kein Bild. :-)

Wir speichern diesen Schritt als underwear_n_mod_alpha.xcf.

Nun zur Ebene 1. Hier müssen wir Farbfilter verwenden, denn ein Durchfärben bringt uns ja nichts.

Dazu benutzen wir Filter > Farben > Kanalmixer... und stellen die Regler anhand der Vorschau so ein, daß die braunen Fellanteile sehr dunkel und die weißen leicht hellgrau erscheinen. Dabei Monochrom anhakeln.
Ruhig ein bißchen rumspielen, man kann alles rückgängig machen, wenns danebengeht. (Bearbeiten > Rückgängig:..)



Mit OK wird der Filter ausgeführt und das Ergebnis kann bewundert werden. Beachtet nur, daß der Farbton nicht zu hell wird, sonst sieht Euer Fell wie Metall aus.Es sollte eben grade ein Hauch von Grau sichtbar sein.

Speichern.

Sinngemäß verfahren wir mit Ebene 2.

am Ende haben wir folgendes:



Ja, und das wars auch schon. Wir speichern unser Ergebnis für evtl. Nacharbeiten nochmal als underwear_n_mod_alpha.xcf und dann als underwear_n_mod_alpha.bmp

Der Zusammenbau der Normalmap.

GIMP können wir beenden- das Programm hat seine Schuldigkeit getan.

Wir aktivieren bzw. starten nun DXTbmp und öffnen unser underwear_n_mod.bmp.
Blau auf weiß können wir nochmal unsere Arbeit bewundern.
Doch noch fehlt der grade erstellte Alpha- Kanal. Das weiße Fenster rechts oben würde bedueten, daß unser ganzes bild maximal reflektiert und einen Metallic- Look bekommt.

Also importieren wir unseren grade erstellten Alpha- Kanal underwear_n_mod_alpha.bmp unter Alpha > Import Alpha Channel .
Die Warnung ignorieren wir.

Ergebnis:



ich habe ein paar Texturfehler drin, das macht aber für das Beispiel nichts aus. Liegt an meiner Pattern und muß bei Euch nicht so aussehen.

Dieses Kunstwerk speichern wir nun mit File > Save as > DDS Texture im Format DXT5 als underwear_n_mod.dds.
DXTbmp schließen.

Und das wars auch schon fast:


Wir gehen in unseren Arbeitsordner bild und kopieren/ einfügen dort unsre neu erstellten Dateien. Die Kopien nennen wir entsprechend um:

underwear_mod.dds zu underwear.dds
underwear_n_mod.dds zu underwear_n.dds

Damit ersetzen wir (nach Sicherung) die Originale im Spieleordner ..\Bethesda Softworks\Oblivion\Data\textures\characters\imperial\female bzw. erstellen diese Ordner, falls noch nicht vorhanden, und kopiren unsre Dateien hinein.

Spiel starten, Hose/ Rock ausziehen und staunen! Als männlicher Char hat man an dieser Stelle natürlich Pech gehabt. :-))

Sollte jetzt jemand (wie ich) feststellen, daß er seiner Dame eine Plastiktüte bzw. Metalldose angezogen hat, ist der Alpha- Kanal zu hell gewesen.

Zur Verbesserung müssen wir also unser underwear_n_mod_alpha.bmp nochmal nachbearbeiten. Gut, daß wir alles gespeichert haben!

Also GIMP starten, die Datei nochmal laden und dann mit Filter > Farben > Abbilden > Einfärben... das Tool für die Graustufenbearbeitung aufrufen. Dort wird im linken (!) Fenster so an den Reglern gedreht, daß das Bild nahezu schwarz mit einigen dezent hellen Anteilen ist.

OK, und so abspeichern.

Diesen neuen Alpha- Kanal müssen wir wieder importieren. Wir können also unsre schon erstellte underwear_n.dds mit DXTbmp aufrufen und den Kanal neu importieren, oder wir machen es wie gehabt und bauen die _n.dds aus dem underwear_n_mod.bmp und unserem neuen Alphakanal zusammen.

Dann sollte es klappen.

So, und nun viel Spaß beim Nachbauen und Selberbasteln.

______________________________

P.S.:
Wer sich dieser Mühe unterzieht, wird einige Überraschungen erleben.

Zum ersten verschluckt die 3D- Form offenbar jede Menge unsrer mühevoll erstellten Textur.

Dann werden unsre säuberlich ausgearbeiteten Formen verzerrt: an der Seite ist der Fellrand fast zur Linie mutiert, ansonsten seht er so aus wie geplant. Im Zwickelbereich wird mächtig gestaucht.

Man kann daraus eigentlich nur lernen und das beim nächsten Versuch entsprechend berücksichtigen.

Haut kriegt bei mir immer eine Art Grauschleier, und ich hab keine Ahnung, weshalb. Egal ob man Alpha schwarz macht oder ganz dezent sprenkelt (um die Hautunebenheiten nachzuahmen), ob man die Normalmap- Filter nach Anwendung des "Zerstreuen"- Filters verwendet, um Poren zu imitieren oder nicht, es ändert nichts.

Wer hierzu Tipps geben kann, bitte her damit.


Nachtrag: transparente Texturen sind jetzt möglich!

Voraussetzung ist, das die Mesh, also die .nif- Datei, so dünn gemacht ist, daß Tranparenz auf die drunterliegenden Strukturen möglich ist.

Dann kann man .dds im Format DXT 5 speichern. Das Bild speichert dabei die Textur, der Alpha- Kanal die Transparenz.

Schwarz heißt dabei totale Transparenz, weiß keine Transparenz. Graustufen liegen dazwischen.

Mit Eshmes Mod ist es zum Beispiel möglich, dem Slip eine Transparenz zuzuweisen.

Möglich deshalb, weil Eshme die underwear.dds mit neuer .nif versehen hat, so daß die bisherigen Slips als Kleidungsstücke im Inventar erscheinen. Die underwear.dds kann man mit DXTbmp und einem Grafikprogramm wie GIMP oder Photoshop so editieren, wie ich das oben beschrieben habe.
Man muß dann halt noch den Alphakanal erstellen (Graustufenbild) und statt als DXT 1 als DXT 5 abspeichern.

Man kann also jetzt frivoles Zeug basteln und das sogar verzaubern.

Nachschub gibts beim Krämer.