EIGENE TEXTUREN (TEIL 2)
Autor: Fragpoint
Downloads: Beispielmap 19
Im vorhergehenden Tutorial haben wir gelernt, wie man eine normale Textur (Diffuse) erstellt. Neben den normalen Texturen gibt es auch noch so genannte Normal- und Specularmaps. Die Normalmaps sind hierbei für die Darstellung von Höhen und Tiefen zuständig, die Specularmaps dagegen mehr für den Glanz einer Textur.
Wie wollen unserer Textur zunächst einmal entsprechende Höhen und Tiefen verpassen, damit die Fugen der einzelnen Glasbausteine gut zur Geltung kommen. Hierfür benötigen wir eine Normalmap. Was das genau ist und wie man diese erstellt, könnt Ihr hier nachlesen. Das Ergebnis könnte bei Euch also wie folgt aussehen:

Speichert diese bitte als "fenster_bump.tga" wieder in folgendem Verzeichnis ab.
C:\Programme\Valve\Steam\SteamApps\EUER-USERNAME\sourcesdk_content\SPIELNAME\materialsrc\customs\
Nun müsst Ihr diese noch - wie wir es bereits gelernt haben - über das Tool "vtex.exe" in ein für die Source-Engine lesbares Format umwandeln lassen. Führt diese Aktion NUR 1x aus. Also die Textur nicht 2x auf das Tool ziehen, sondern nur 1x.
Ihr erinnert Euch sicher noch, dass das Tool im Verzeichnis, in dem unsere Textur liegt, eine TXT-Datei anlegt, die vollständig leer ist. In diese kann man Informationen eintragen, die das Programm beim Unwandeln beachten muss. Wir öffnen daher diese TXT-Datei im o. g. Verzeichnis und tragen dort folgendes ein:
"normal" 1
"bumpscale" ".025"
Diese Befehle geben nur an, dass es sich dabei um eine Normalmap handelt und wie stark diese skaliert werden soll.
Anschließend speichern wir diese Datei und ziehen die TGA-Grafik nochmals (2. Arbeitsschritt) auf das "vtex.exe"-Tool. Nun sollte auch für die Normalmap eine VTF-Datei im nachfolgenden Verzeichnis vorhanden sein:
C:\Programme\Valve\Steam\SteamApps\EUER-USERNAME\counter-strike source\cstrike\materials\customs

Als nächstes müssen wir der Engine wieder klar machen, was sie mit dieser Textur machen sollen. Wir erinnern uns, dass wir bereits für die normale Oberfläche einen Shader/Material angelegt haben. Wir öffnen daher die Datei "fenster.vmt" mit einem reinen Texteditor (kein Word o.ä.). Dort steht momentan noch folgendes drin.
"LightmappedGeneric"
{
"$basetexture" "customs/fenster"
}Das Ganze ergänzen wir nun noch wie folgt:
"LightmappedGeneric"
{
"$basetexture" "customs/fenster"
[B][COLOR=Red]"$bumpmap" "customs/fenster_bump"[/COLOR][/B]
}Diese Ergänzung sagt der Source-Engine bzw. dem Hammer lediglich, wo diese Textur liegt und dass sie als Normalmap verwendet werden soll. Lasst Euch von dem Befehl "$bumpmap" nicht verwirren. Es handelt sich hierbei um eine Normal- und keine Bumpmap. Jetzt brauchen wir nur noch ein paar kleine Ergänzungen wie folgt:
"LightmappedGeneric"
{
"$basetexture" "customs/fenster"
"$bumpmap" "customs/fenster_bump"
[COLOR=Red][B]"$envmap" "env_cubemap"
"$envmaptint" "[.1 .1 .1]" [/B] [/COLOR]
}Wenn Eure Textur im Spiel zu hell "leuchtet", könnt Ihr das über die Werte unter dem Befehl "$envmaptint" verändern. Standardmäßig wird die Textur in der Source-Engine voll ausgeleuchtet (1) und wirkt dadurch fast weiß. Wir vermindern bei uns die Helligkeit (0.1).
Uff, wieder ziemlich viel Theorie. Deshalb wollen wir uns mal das Ergebnis im Spiel anschauen.
VORHER (normale Textur):

NACHHER (Textur mit Normalmap):

Nicht gerade die schönste, aber ich denke mal, ihr wisst jetzt, was zu tun ist und könnt durch etwas herumspielen mit der Normalmap und den Werten im Shader ein besseres Ergebnis erzielen. Falls bei Euch keine Vertiefungen erkennbar sein sollten, könnte das daran liegen, dass Ihr vergessen habt, den Ordner mit dem Shader/Material und den Texturen in dieses Verzeichnis zu verschieben:
C:\Programme\Valve\Steam\SteamApps\EUER-USERNAME\counter-strike source\cstrike\materials
Ein weiterer Grund könnt übrigens sein, dass Ihr "CS: Source" im Hintergrund laufen habt. Beendet das Spiel und startet es neu. Dann sollte auch die Textur richtig angezeigt werden. Weitere Informationen zu Shadern/Materials erhaltet ihr hier: http://www.valve-erc.com/srcsdk/.