Q3Map2 - Bump-Mapping



Neu ist auch das Bump-mapping. Damit wird einer Textur eine tiefe gegeben. Ich will hier kurz zeigen wie man so etwas macht. Im Prinzip muss dann ein Shader geschrieben werden, der eine Normalmap unter die normale Textur mit auf die Lightmap legt. So entsteht dann ein Eindruck als habe zb ein Stein fugen. Um eure Normalmaps zu erstellen braucht ihr folgendes kleines plug-in für Photoshop aus dem Hause Nvidia. Downloaden könnt ihr es hier. Habt ihr es gesaugt, müsst ihr das Tool in euer Photoshop\plugins\filters Verzeichnis entpacken. Ladet nun eure Textur die schwarz weiß sein sollte im Photoshop und benutzt den Normalmapfilter. Euer Ergebniss könnt ihr dann auch in einer 3D-ansicht bewundern im Photoshop und noch einstellen, wieviel tiefe eure Textur bekommen soll.

Aus dieser Textur


Quake 3 Q3Map2

wird dann diese Textur werden:

Quake 3 Q3Map2


Jetzt müsst ihr noch euren Shader schreiben, damit die Q3Map2 ihn verarbeiten kann. Dieser Shader schaut dann so aus:


textures/fiesling_metal/bodengitter

{
qer_editorimage textures/fiesling_metal/bodengitter.tga
q3map_normalimage textures/fiesling_bump/bodengitter_fbump.tga
surfaceparm metalsteps
{
map $lightmap
rgbGen identity
}
{
map textures/fiesling_metal/bodengitter.tga
blendFunc GL_DST_COLOR GL_ZERO
rgbgen identity
}
}


Es ist Ansich ein normaler Shaderaufbau. Ich habe dem Gitter den Surfaceparm Metalsteps gegeben. Wichtig ist die markierte Zeile. Der Befehl "q3map_normalimage" gibt den Pfad an zu der Normalmap die ihr erstellt habt im Photoshop.
Das ist auchschon das ganze Geheimnis des Bump-mappings. Ob ihr Erfolg hattet wird angezeigt wenn ihr im Spiel, was ihr vorher mit /devmap gestartet habt, nach dem Befehl /r_lightmap 0 auf euerer Lightmap einen "Gitterabdruck" habt. ist der Abdruck verschwommen, so müsst ihr mit einem kleineren lightmapscale Wert arbeiten, damit er scharf wird. Im Moment sieht es auch noch so aus, das wenn dort helle Lichter sind, die bump-map ausfaded und nicht mehr gut sichtbar ist. Ich bin sicher das die aber in späteren Versionen verbessert und behoben wird.