Hallo Freunde!

hier mal was zum antesten für Euch, ist leider noch nicht ganz fertig aber sollte funktionieren die zugewiesen WAD Texture muss auf Shaded gesetzt werden.
Für bessere Vorschläge bin ich ganz Ohr, viel Spass damit.





/**********************************************************************
bump_diffuse.wdl extra einbinden
***********************************************************************/
var d3d_automaterial = 1; // 2 für Sprites
var d3d_lightres = on;
/////////
bmap normalmap = <hier die Normal Map>; // name der normal Map (mtlSkin1)
material hier Materialname // name der Wad Texture
{
skin1=normalmap;
flags=tangent;
}
///////
// für mehrere wad tex seperate fx
starter bump_fx
{
bmap_to_mipmap(normalmap.skin1);
effect_load(hier Materialname,"bump_diffuse.fx");
}
/**********************************************************************
***********************************************************************/

/// FX Datei extra speichern //

/**********************************************************************
Diffuse Bumpmapping.fx (normalmap auf Levelblocks) ohne dyn.Licht, m.p.
***********************************************************************/
float4x4 matWorld;
float4x4 matWorldViewProj;
vector vecLight; // oder aber LightPos
/////////
texture entSkin1; // Wad Tex
texture entSkin2; // Light,Shadow Tex
texture mtlSkin1; // Normal Map
/////////
float4 BumpHeight = { 1.0, 0.0, 0.0, 0.0};
//float4 LightPos = {1.0, 1.5, 1.0, 0.0 };
/////////
/////////////
technique bump_diffuse
{
pass p0
{

VertexShaderConstant[0] = <matWorld>;
VertexShaderConstant[4] = <matWorldViewProj>;
VertexShaderConstant[8] = <matWorld>;
VertexShaderConstant[12] = <vecLight>;//<LightPos>;
VertexShaderConstant[13] = {1.0, 0.5, 0.7, 0.0}; // 1.0 und 0.5 Lichteinfall
VertexShaderConstant[14] = <BumpHeight>; // 0.7 Gesamthelligkeit
VertexShaderConstant[90] = {1.0,1.0,1.0,1.0};

VertexShader =
asm
{
vs.1.1

dcl_position v0
dcl_normal v3
dcl_color v5
dcl_texcoord1 v7
dcl_tangent v8
dcl_binormal v9
dcl_texcoord0 v10

m4x4 oPos, v0, c4 // Position Screen
mov oT0, v7 // Tex Coords Normal Map
mov oT1, v7 // Tex Coords Diffuse Map
mov oT2, v10 // Tex Coords Light&Shadow
mov oFog, c90.w

mov r0, c12
dp3 r0.w, r0, r0
rsq r0.w, r0.w
mul r0, r0, r0.w

// Licht zu Object
dp3 r2.x, v8, r0 // Tangent
dp3 r2.y, c9, r0 // Binormal
dp3 r2.z, c10, r0 // Normal

// Licht zu Tangent
dp3 r1.x, v8, r2 // Tangent
dp3 r1.y, v9, r2 // Binormal
dp3 r1.z, v3, r2 // Normal
sge r1.w, r1.x, r1.x

mov r0, c13
add r0, r0, r0
mul r0, r1, r0

mad oD0, r0, c13, c13
};

Zenable = true;
ZWriteEnable = true;

Texture[0] = <mtlSkin1>; // Normal map
MinFilter[0] = Linear;
MagFilter[0] = Linear;
MipFilter[0] = Linear;

Texture[1] = <entSkin1>; // Diffuse map (wad texture)
MinFilter[1] = Linear;
MagFilter[1] = Linear;
MipFilter[1] = Linear;

Texture[2] = <entSkin2>; // Licht & Schatten (wad texture)
MinFilter[2] = Linear;
MagFilter[2] = Linear;
MipFilter[2] = Linear;

ColorArg1[0] = Texture;
ColorArg2[0] = Diffuse;
AlphaArg1[0] = Texture;
AlphaArg2[0] = Diffuse;
ColorOp[0] = DotProduct3;
AlphaOp[0] = SelectArg1;

ColorArg1[1] = Current;
ColorArg2[1] = Texture;
ColorOp[1] = Modulate2x; //4x mehr glanz

AlphaOp[1] = SelectArg1;

COLORARG1[2] = Texture;
COLORARG2[2] = Current;
COLOROP[2] = Modulate2x;

}
}
/////////////////////////

mfg
mpde

Last edited by MPde; 11/20/04 08:36.