normal mapping auf Levelblocks

Posted By: mpde

normal mapping auf Levelblocks - 11/14/04 20:26

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
Posted By: mpde

Re: normal mapping auf Levelblocks - 11/20/04 08:49

Hallo!

haben ja schon einige gelesen, aber wohl leider keiner getestet... schade mich würde schon interessieren wie es auf anderen systemen läuft (fps).

mfg
mpde
Posted By: ShooterMaker

Re: normal mapping auf Levelblocks - 11/20/04 17:26

In Antwort auf:

Hallo!

haben ja schon einige gelesen, aber wohl leider keiner getestet... schade mich würde schon interessieren wie es auf anderen systemen läuft (fps).




ja mich auch
Posted By: Stefan

Re: normal mapping auf Levelblocks - 11/20/04 21:23

Hi,

hab den Shader versucht, aber leider funktionierten manche Sachen nicht:

1. Beim Enginestart kam: "Parameter unknown normalmap Keyword "
2. Als ich "bmap_to_mipmap(normalmap.skin1); " ausdokumentiert hatte kam nach dem Start: "Error in effect wall001"

Mein code:
Code:
  
/**********************************************************************
bump_diffuse.wdl extra einbinden
***********************************************************************/
var d3d_automaterial = 1; // 2 für Sprites
var d3d_lightres = on;
/////////
bmap normalmap = <wall001_bump.bmp>; // name der normal Map (mtlSkin1)
material wall001 // 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(wall001,"bump_diffuse.fx");
}
/**********************************************************************
***********************************************************************/



Hab dann einfach bump_diffuse.wdl in meinen hauptscript integriert! Irgendwelche Vorschläge??

Stefan

PS: Hab A6 Com neuste Beta
Posted By: Steempipe

Re: normal mapping auf Levelblocks - 11/20/04 21:42

Suggestion: bmap_to_mipmap(mtl.skin1);
Posted By: mpde

Re: normal mapping auf Levelblocks - 11/20/04 22:01

also das ist komisch? bei mir funzt es alles hier nochmal ist ja alles weg oben... so ist es bei mir.

das ist die wdl datei
//////////////////////////////
// Variablen
//////////////////////////////
var d3d_automaterial = 1;
var d3d_lightres = on;
//////////////////////////////

//////////////////////////////
// Normal-Maps laden
//////////////////////////////
bmap tile001_normal = <tile001.tga>;
bmap brick001_normal = <brick001.tga>;
bmap concrete002_normal = <concrete002.tga>;
bmap door001_normal = <door001.tga>;
//////////////////////////////

//////////////////////////////
//////////////////////////////
// Shader
//////////////////////////////
material tile001
{
skin1=tile001_normal;
flags=tangent;
}

material brick001
{
skin1=brick001_normal;
flags=tangent;
}

material concrete002
{
skin1=concrete002_normal;
flags=tangent;
}

material door001
{
skin1=door001_normal;
flags=tangent;
}
//////////////////////////////

starter load_fx
{
bmap_to_mipmap(tile001.skin1);
bmap_to_mipmap(brick001.skin1);
bmap_to_mipmap(concrete002.skin1);
bmap_to_mipmap(door001.skin1);
effect_load(tile001,"bump_diffuse.fx");
effect_load(brick001,"bump_diffuse.fx");
effect_load(concrete002,"bump_diffuse.fx");
effect_load(door001,"bump_diffuse.fx");
}
//////////////////////////////


das ist die fx datei

/**********************************************************************
Diffuse Bumpmapping (normalmap auf Levelblocks) ohne dyn.Licht
***********************************************************************/
float4x4 matWorld;
float4x4 matWorldViewProj;
//float4 vecLightColor[8];
/////////
texture entSkin1; // Wad Tex
texture entSkin2; // Light,Shadow Tex
texture mtlSkin1; // Normal Map
/////////
float4 BumpHeight = { 0.0, 0.0, 0.0, 0.0};
float4 LightPos = {0.0, 0.0, 0.0, 0.0 };
/////////
/////////////
technique bump_diffuse
{

pass p0
{

// Zenable = true;
// ZWriteEnable = true;

Texture[0] = <mtlSkin1>; // Normal map
Texture[1] = <entSkin1>; // Diffuse map (wad texture)
Texture[2] = <entSkin2>; // Licht & Schatten (wad texture)
MinFilter[2] = Linear;
MagFilter[2] = Linear;
MipFilter[2] = Linear;


ColorOp[0] = DotProduct3;
ColorArg1[0] = Texture;
ColorArg2[0] = Diffuse;

ColorOp[1] = Modulate2x;
ColorArg1[1] = Current;
ColorArg2[1] = Texture;

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


VertexShaderConstant[0] = <matWorld>;
VertexShaderConstant[4] = <matWorldViewProj>;
VertexShaderConstant[8] = <matWorld>;
VertexShaderConstant[12] = <LightPos>;
VertexShaderConstant[13] = {1.0, 0.5, 0.7, 0.0};
VertexShaderConstant[14] = <BumpHeight>;
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 // Nebel

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
};
}
}
/////////////////////////

mfg
mpde
Posted By: Stefan

Re: normal mapping auf Levelblocks - 11/20/04 22:21

SHAME ON ME!

Okay, funktioniert jetzt alles! sieht genial aus! War nur zu doof die fx-Datei richtig zu benennen!

Danke

Stefan
Posted By: mpde

Re: normal mapping auf Levelblocks - 11/21/04 09:17

In Antwort auf:


Okay, funktioniert jetzt alles! sieht genial aus! War nur zu doof die fx-Datei richtig zu benennen!





das ist schön aber andere wichtige frage... wie sieht es aus mit der framerate bei dir. ich habe festgestellt das sie manchmal sehr sehr absackt gerade bei grossen räumen.

@conitec wie bekomme ich es hin das der shader nicht benutzt wird auf unsichtbare levelblocks (bin in raum a sehe raum b nicht beide haben die selbe textur und den shader zugewiesen. aber der shader wird auch für raum b berechnet wäre dankbar für ein tip denn dann wäre das fps problem gelöst.

mfg
mpde
Posted By: mpde

Re: normal mapping auf Levelblocks - 11/24/04 23:44

Hallo !

demo scripte hier

www.ma-pre.de
Posted By: Masterchiefk

Re: normal mapping auf Levelblocks - 11/25/04 02:31

hi, öhm frage bei mir kommt immer
error in effekt:
holz001(4):unknown type in parameter declaration: 'float4x4'

was hab ich den falsch gemacht?

///////////////////////////////////////////////////////////////////////////
// name001 und -002 usw. durch die Materialnamen der Wadtexturen ersetzen
// name002 und -002 usw. durch die Namen der Normal - Maps ersetzen
// WICHTIG: die Normal - Maps und die bump_diffuse.fx Datei müssen sich im
// Levelordner befinden
///////////////////////////////////////////////////////////////////////////
// Variablen
//////////////////////////////
var d3d_automaterial = 1;
var d3d_lightres = on;
//////////////////////////////
// Normal-Maps laden
//////////////////////////////
bmap holz_normal = <holz001.tga>;
//////////////////////////////
//////////////////////////////
// Shader für Levelblocks
//////////////////////////////
material holz001
{
skin1=holz_normal;
flags=tangent;
}

//////////////////////////////
starter load_fx
{
bmap_to_mipmap(holz001.skin1);
effect_load(holz001,"bump_diffuse.fx");
}
//////////////////////////////
Posted By: mpde

Re: normal mapping auf Levelblocks - 11/25/04 02:50

Tja Frage was hast du an der fx datei verändert, hast du sie in den richtigen ordner kopiert?

//////////////////////////////
starter load_fx
{
bmap_to_mipmap(holz001.skin1);<<<< das ist falsch so muss es holz_normal.skin1
effect_load(holz001,"bump_diffuse.fx");
}
//////////////////////////////

du willst doch mipmapping für die normalmap oder

mfg
mpde
Posted By: Masterchiefk

Re: normal mapping auf Levelblocks - 11/25/04 03:03

ich denke schon ^^ thx
Posted By: Masterchiefk

Re: normal mapping auf Levelblocks - 11/25/04 03:22

habs jetzt so verändert jedoch kommt dann
< bmap_to_mipmap(holz001_normal.skin1)>
schader.wdl 29:0 error (56); Parameter unknown holz001_normal Keyword
als ob des net richtig difiniert wäre und an der bump_diffuse.fx hab ich nix verändert...

bmap holz001_normal = <holz001.tga>;
//////////////////////////////
//////////////////////////////
// Shader für Levelblocks
//////////////////////////////
material holz001
{
skin1=holz001_normal;
flags=tangent;
}

//////////////////////////////
starter load_fx
{
bmap_to_mipmap(holz001_normal.skin1);
effect_load(holz001,"bump_diffuse.fx");
}
//////////////////////////////
Posted By: mpde

Re: normal mapping auf Levelblocks - 11/25/04 03:40

welche gamstudio version hast du denn ? musst mindestens 6.31.3 haben
sonst funzt es nicht
Posted By: mpde

Re: normal mapping auf Levelblocks - 11/29/04 21:18

Hallo Freunde!

da ich zu denen gehöre die nicht aufgeben können hier mal wieder was neues aber diesmal mit dynamischen lichtquellen ... fx datei zum weiteren bearbeiten unter www.ma-pre.de


Posted By: Marco_Grubert

Re: normal mapping auf Levelblocks - 11/30/04 11:37

Sieht sehr gut aus !
Allerdings haben die Ziegelsteine ein bischen zuviel Bumps und die Saeule schaut sehr glitschig aus
Posted By: mpde

Re: normal mapping auf Levelblocks - 11/30/04 15:57

freut mich... sicher die texturen sind ein wenig schlecht gewählt war ja nur ein vorschlag was möglich ist, lässt sich ja intern alles anders einstellen. aber andere frage welche möglichkeiten gibt es die verschiedenen shader zu optimieren den gerade im bereich der framerate liegt dieser im gegensatz zum normal-mapping im unteren drittel. ich weiss habe die frage schon öfter gestellt aber noch keine antwort bekommen die mich weiter bringen könnte.

mfg
mpde
Posted By: Elfi

Re: normal mapping auf Levelblocks - 12/01/04 01:17

wie gesagt probier mal...bin ja mal gespannt wie es aussieht in 3DGS



Demon
Posted By: broozar

Re: normal mapping auf Levelblocks - 11/01/05 07:47

wow, the best Bump-LVL-geometry shader for 1.1 i´ve ever seen ^^
thx!

[edit]: works well on models, too! have changed the skin values a lil, and it comes out wonderful! that´s the kind of faked specular effect i´ve been lookin for such a long time!
Posted By: broozar

Re: normal mapping auf Levelblocks - 11/01/05 07:52

small example pic with a doom3 texture/normal map:
looks almost like the original!


Posted By: nightshade

Re: normal mapping auf Levelblocks - 11/01/05 23:01

EDIIIIIIIIIT : Damned, geht nicht, was soll das??ßßßßßßßß
hab alles gemacht, die datei extra als fx mit dem name gespeichert, alles im selben ordner. alles wie du es geschrieben hast.
dann sagt mir die engine : bmap_to_mipmap(normalmap.skin1)
bumpdiffuse.wdl 14:0 Error(56): Parameter unknown normalmap Keyword
.
Script error
Engine shutdown

Ich krieg die Krise!!!!11111

Edit : Funktioniert

Posted By: broozar

Re: normal mapping auf Levelblocks - 11/02/05 11:31

lösch die zeile einfach und fertig!
Posted By: nightshade

Re: normal mapping auf Levelblocks - 11/02/05 13:38

siehe edit - es funktioniert, und die zeile löschen, dann würde das bumpmapping gar net dargestellt werden. so zu mpde : sieht sehr net aus, ist aber ja leider nur normalmapping, gibts auch parallax für levelblocks (sollt der logik nach ja gehn).
mfg 1337_hax0r.
Posted By: Sebe

Re: normal mapping auf Levelblocks - 11/02/05 16:16

Es gibt Parallax für Models, den könnte man (man = einer, der eine Ahnung von Shadern hat) bestimmt problemlos für Levelgeometrie anwenden. Allerdings wäre dies wohl der endgültige Performance-Tod. Und den Shader selbst müsste man wohl auch noch erweitern, denn bisher bietet der keine Specularmap - dadurch glänzt einfach die gesamte Oberfläche, was zwar auf Metall gut aussieht, auf Holz etwa aber gar nicht.

Ausserdem sieht Normalmapping bereits sehr gut aus, sofern man es richtig einsetzt.
Posted By: broozar

Re: normal mapping auf Levelblocks - 11/02/05 23:51

Quote:

siehe edit - es funktioniert, und die zeile löschen, dann würde das bumpmapping gar net dargestellt werden




unfug. siehe mein pic
Posted By: nightshade

Re: normal mapping auf Levelblocks - 11/03/05 02:31

rofl naja bei mir gehts aber mit.
© 2024 lite-C Forums