Erstellen der normalmap


Zum Erstellen einer normalmap benötigen wir unsere Textur:
normalmap01.jpg

Ich verwende Photoshop 7.0 (mit gefixtem *.tga plugin) und dem normalmap Filter von Nvidia (Adobe PhotoShop Normal Map and DDS Authoring Plug-ins)

Textur in Photoshop öffnen, dann unter Filter - nvTools - NormalMapFilter… den Nvidia Filter öffnen.
Dabei ist darauf zu achten, dass die Textur auf eine Hintergrundebene reduziert wurde (Ebene - Auf Hintergrundebene reduzieren). Es öffnet sich folgende Dialogbox:
normalmap02.jpg

Mit den Einstllungen muss man einwenig rumprobieren und sind bei jeder Textur etwas anders.

NormalMapFilter

Hight Generation

  • Filter Type = gibt an wie fein die normalmap sein soll. 4 sample ist fein. 9×9 sehr grob.
  • Wrap = FIXME keine Ahnung
  • Invert X = dreht die X-Werte um.
  • Invert Y = dreht die Y-Werte um.

Wird bei eurer Textur genau das Falsche hervorgehoben bzw. abgesengt, müsst ihr beide (Invert X und Invert Y) auswählen.

  • Min Z = Forces the „up“ direction to be a minimum value. Was auch immer das heißen mag. (Quelle: Nvidia Documentation)
  • Scale = gibt an wie stark die normalmap bereiche hervorheben soll.

3D View Options

  • Decal Texture = FIXME keine Ahnung.
  • Use Decal Texture = FIXME keine Ahnung.
  • Brighten Decal = FIXME keine Ahnung.
  • Animate Light = lässt die Lichtquelle in der 3D Preview umher bewegen.

Height Score

  • Alpha Channel = FIXME keine Ahnung
  • Average RGB = FIXME keine Ahnung

Alternate Conversions

  • Biased RGB = FIXME keine Ahnung
  • Red = hebt nur den Rot-Kanal hervor
  • Green = Hebt nur den Grün-Kanal hervor
  • Blue = hebt nur den Blau-Kanal hervor
  • Max (R,G,B) = hebt nur die 255 Werte aus den drei Kanälen vor
  • Colorspace = FIXME keine Ahnung
  • Normalize only = die Textur ist bereits eine normalmap und muß nur erneut normalisiert werden
  • Convert to Height = FIXME keine Ahnung

Alpha Field

Gibt an, was nach dem erstellen der normalmap im Alphakanal stehen soll

  • Unchanged = unverändert lassen
  • Height = Höhe
  • Set to 0.0 = FIXME keine Ahnung
  • Set to 1.0 = FIXME keine Ahnung



  • Add Height to Normal Map = FIXME keine Ahnung
  • Output 16:16 = FIXME keine Ahnung
  • Output 12:12:8 = FIXME keine Ahnung
  • Using Multiple Layers = wenn ihr mit Layern arbeitet und der Alphakanal nicht geht
  • Signed Output = FIXME keine Ahnung
  • Swap RGB = FIXME keine Ahnung


  • 3D Preview = zeigt einem eine 3D Ansicht der normalmap mit Lichtquelle. Sehr nützlich!


Durch bestätigen mit OK habt ihr eure normalmap erstellt.

*.tga weiter verarbeiten

Ihr speichert nun diese normalmap als *.tga. Sie muss im selben Verzeichnis sein, wie eure Textur, 24 bit/Pixel haben und am besten auch den selben Namen mit der Erweiterung *_normal.tga:

  • \Valve\Steam\SteamApps\username\sourcesdk_content\hl2\materialsrc\euer-eigenes-Verzeichnis\*_normal.tga

oder für CS Mapper:

  • \Valve\Steam\SteamApps\username\sourcesdk_content\cstrike\materialsrc\euer-eigenes-Verzeichnis\*_normal.tga


Am besten öffnet ihr nun zwei Explorer Fenster nebeneinander. In einem geht ihr in das Verzeichnis in dem wir gerade unsere normalmap gespeichrt haben. In dem anderen in den Ordner: \Valve\Steam\SteamApps\username\sourcesdk\bin Nun zieht ihr eure normalmap auf die Datei vtex.exe die im Ordner …\bin ist. Dabei ensteht eine *_normal.txt Datei in dem Ordner wo eure normalmap ist. Diese öffnet ihr und tragt folgendes ein:

„normal“ 1
„bumpscale“ “.025“


Wozu der Eintrag „bumpscale“ “.025“ genau ist, weiß ich noch nicht. Es geht auch ohne ihn. Speichert die neuen Einträge.
Nun zieht ihr eure normalmap erneut über die Datei vtex.exe. Wenn alles gut ging, wurde jetzt eine Datei mit dem Namen *_normal.vtf im Verzeichnis:

  • \Valve\Steam\SteamApps\username\half-life 2\hl2\materials\euer-eigenes-Verzeichnis\*_normal.vtf

oder für CS Mapper:

  • \Valve\Steam\SteamApps\username\counter-strike source\cstrike\materials\euer-eigenes-Verzeichnis\*_normal.vtf

erstellt.

*.vmt bearbeiten

Jetzt müssen wir nur noch eine Zeile in eurer *.vmt Datei hinzufügen, die sich im gleichen Verzeichnis befindet wie die soeben erstellte *.vtf Datei:

„$bumpmap“ „euer-eigenes-Verzeichnis/*_normal“

Als Beispiel mal meine *.vmt Datei:

LightmappedGeneric
{
	"$basetexture" "custom/church-wall01"
	"$surfaceprop" "concrete"
	"$bumpmap"     "custom/church-wall01_normal"
}


Ergebnis

So, daß sollte es eigentlich gewesen sein. Bei mir sieht es im Spiel so aus:
normalmap03.jpg
Sieht nicht gerade berauschend aus, liegt aber zum einen daran, dass ich mir nicht viel Mühe mit der normalmap gemacht habe und dass das Licht etwas ungünstig ist. Am besten kommen normalmaps mit bewegten Lichtern zur geltung.

Die Verwendung aller Dokumente einschließlich der Abbildungen ausschließlich zu nichtkommerziellen Zwecken. Verbreitung des Dokuments auf Speichermedien, (insbesondere auf CD-ROMs als Beilage zu Zeitschriften und Magazinen oder sog. "Mission-Packs" etc.) ist untersagt.
 
half-life_2/tutorials/normalmaps.txt · Zuletzt geändert: 2006/04/05 12:47 von _freezer_