So, nach einigen Experimenten hab ichs hinbekommen das der Shader läuft. Der Testlevel hatte allerdings keine Lichter, wurde nur von Sonnenlicht beeinflusst. Da wurde immerhin auf einer Seite meines Test-Blocks die Textur+Bumpmap richtig dargestellt. Nun hab ich aber 2 Lichter gesetzt, und jetzt schauts total grausam aus! Hier der Code den ich verwende:

Code:

// Test-Shader

bmap testtex_map = "testtex.bmp";
bmap testtex_normal_map = "testtexdot3.tga";

material testtex
{

skin2 = testtex_normal_map;
skin1 = testtex_map;

scale1 = 0.1;

effect = "

matrix matWorldViewProj;
matrix matWorld;

texture mtlSkin1;
texture mtlSkin2;

vector vecLight;

technique dot3map
{
pass p0
{
Texture[0] = <mtlSkin2>;//2te Skin im Model ist die Normal Map
Texture[1] = <mtlSkin1>;//1te Skin im Model ist die Textur

COLOROP[0] = dotproduct3;
COLORARG1[0] = texture;
COLORARG2[0] = diffuse;

COLOROP[1] = modulate;
COLORARG1[1] = texture;
COLORARG2[1] = current;

VertexShaderConstant[0]=<matWorldViewProj>;
VertexShaderConstant[4]=<matWorld>;
VertexShaderConstant[18]={1f,1f,1f,1f};
VertexShaderConstant[19]={0.5f,0.5f,0.5f,0.5f};
VertexShaderConstant[20]= <vecLight>;
VertexShaderConstant[30]={0f,1f,0f,0f};
VertexShaderConstant[31]={1f,0f,0f,0f};
VertexShaderConstant[32]={0f,0f,1f,0f};
VertexShaderConstant[90]={1f,0f,0f,0f}; //damit oFog gefüllt ist

VertexShader =
decl
{
stream 0;
float v0[3]; //Position
float v3[3]; //Normal
float v7[2]; //Textur Koordinaten 0
}
asm
{
vs.1.0
m4x4 oPos, v0, c0
m4x4 r10,v0,c4
m3x3 r8,v3,c4
mov oT0, v7
mov oT1, v7
mov oT2, v7
mov oT3, v7

//calculate texture space matrix from normal and up
mul r0,c31,v3.zxyw //-1,0,0
mul r1,c32,v3.yzxw //0,0,-1
sub r0,r1,r0

dp3 r0.w,r0,r0
rsq r0.w,r0.w
mul r0,r0,r0.w //normalized right vector

mov r1, c30 //0,-1,0
mov r2, r8

sub r9,c20,r10

dp3 r9.w,r9,r9
rsq r9.w,r9.w
mul r9,r9,r9.w //normalized light vector

m3x3 r3,r9,r0
mov r3.w,c30.w //transform light to texture space

add r3,r3,c18 //bias
mul r3,r3,c19//scale
mov oD0,r3
mov oFog,c90
};
}
}
";
}




MfG, Christian__A. Visit my Site: www.chris-a.de