I put the var d3d_automaterial = 1; in my script, and named the material grass01, like my texture on one of my wads. I'm using the ati fur shader:
======
var d3d_automaterial = 1;
material grass01
{
flags = tangent;
effect
"
matrix matWorldViewProj;
matrix matWorld;
matrix matWorldView;
texture entSkin1;
technique fur
{
pass p0
{
Texture[0] = <entSkin1>;
VertexShaderConstant[0]=<matWorldViewProj>;
VertexShaderConstant[4]={0.24f,0.24f,0.24f,0.24f};
VertexShaderConstant[5]={1f,1f,1f,1f};
PixelShaderConstant[0]={0.628f,0.373f,0.121f,0.424f};
VertexShader =
decl
{
stream 0;
float v0[3]; //Position
float v1[3]; //Normal
float v2[3]; //Texture Coordinates
}
asm
{
vs.1.1
// get model space vertex
mov r0, v0
// get shell distance
mov r1, c4
// offset shell in direction of normal
mul r1.x, r1.x, c5.x
mul r1.xyz, r1.xxx, v1.xyz
add r0.xyz, r0.xyz, r1.xyz
// output transformed vertex
m4x4 oPos, r0, c0
// output texture coordinates
mov oT0, v2
};
pixelshader=
asm
{
ps.1.4
texld r0, t0 // base map
mul r0, r0, c0
};
}
pass p1
{
Texture[0] = <entSkin1>;
VertexShaderConstant[0]=<matWorldViewProj>;
VertexShaderConstant[4]={0.24f,0.24f,0.24f,0.24f};
VertexShaderConstant[5]={2f,2f,2f,2f};
PixelShaderConstant[0]={0.628f,0.373f,0.121f,0.424f};
VertexShader =
decl
{
stream 0;
float v0[3]; //Position
float v1[3]; //Normal
float v2[3]; //Texture Coordinates
}
asm
{
vs.1.1
// get model space vertex
mov r0, v0
// get shell distance
mov r1, c4
// offset shell in direction of normal
mul r1.x, r1.x, c5.x
mul r1.xyz, r1.xxx, v1.xyz
add r0.xyz, r0.xyz, r1.xyz
// output transformed vertex
m4x4 oPos, r0, c0
// output texture coordinates
mov oT0, v2
};
}
pass p2
{
Texture[0] = <entSkin1>;
VertexShaderConstant[0]=<matWorldViewProj>;
VertexShaderConstant[4]={0.24f,0.24f,0.24f,0.24f};
VertexShaderConstant[5]={3f,3f,3f,3f};
PixelShaderConstant[0]={0.628f,0.373f,0.121f,0.424f};
VertexShader =
decl
{
stream 0;
float v0[3]; //Position
float v1[3]; //Normal
float v2[3]; //Texture Coordinates
}
asm
{
vs.1.1
// get model space vertex
mov r0, v0
// get shell distance
mov r1, c4
// offset shell in direction of normal
mul r1.x, r1.x, c5.x
mul r1.xyz, r1.xxx, v1.xyz
add r0.xyz, r0.xyz, r1.xyz
// output transformed vertex
m4x4 oPos, r0, c0
// output texture coordinates
mov oT0, v2
};
}
pass p3
{
Texture[0] = <entSkin1>;
VertexShaderConstant[0]=<matWorldViewProj>;
VertexShaderConstant[4]={0.24f,0.24f,0.24f,0.24f};
VertexShaderConstant[5]={4f,4f,4f,4f};
PixelShaderConstant[0]={0.628f,0.373f,0.121f,0.424f};
VertexShader =
decl
{
stream 0;
float v0[3]; //Position
float v1[3]; //Normal
float v2[3]; //Texture Coordinates
}
asm
{
vs.1.1
// get model space vertex
mov r0, v0
// get shell distance
mov r1, c4
// offset shell in direction of normal
mul r1.x, r1.x, c5.x
mul r1.xyz, r1.xxx, v1.xyz
add r0.xyz, r0.xyz, r1.xyz
// output transformed vertex
m4x4 oPos, r0, c0
// output texture coordinates
mov oT0, v2
};
}
pass p4
{
Texture[0] = <entSkin1>;
VertexShaderConstant[0]=<matWorldViewProj>;
VertexShaderConstant[4]={0.24f,0.24f,0.24f,0.24f};
VertexShaderConstant[5]={5f,5f,5f,5f};
PixelShaderConstant[0]={0.628f,0.373f,0.121f,0.424f};
VertexShader =
decl
{
stream 0;
float v0[3]; //Position
float v1[3]; //Normal
float v2[3]; //Texture Coordinates
}
asm
{
vs.1.1
// get model space vertex
mov r0, v0
// get shell distance
mov r1, c4
// offset shell in direction of normal
mul r1.x, r1.x, c5.x
mul r1.xyz, r1.xxx, v1.xyz
add r0.xyz, r0.xyz, r1.xyz
// output transformed vertex
m4x4 oPos, r0, c0
// output texture coordinates
mov oT0, v2
};
}
pass p5
{
Texture[0] = <entSkin1>;
VertexShaderConstant[0]=<matWorldViewProj>;
VertexShaderConstant[4]={0.24f,0.24f,0.24f,0.24f};
VertexShaderConstant[5]={6f,6f,6f,6f};
PixelShaderConstant[0]={0.628f,0.373f,0.121f,0.424f};
VertexShader =
decl
{
stream 0;
float v0[3]; //Position
float v1[3]; //Normal
float v2[3]; //Texture Coordinates
}
asm
{
vs.1.1
// get model space vertex
mov r0, v0
// get shell distance
mov r1, c4
// offset shell in direction of normal
mul r1.x, r1.x, c5.x
mul r1.xyz, r1.xxx, v1.xyz
add r0.xyz, r0.xyz, r1.xyz
// output transformed vertex
m4x4 oPos, r0, c0
// output texture coordinates
mov oT0, v2
};
}
pass p6
{
Texture[0] = <entSkin1>;
VertexShaderConstant[0]=<matWorldViewProj>;
VertexShaderConstant[4]={0.24f,0.24f,0.24f,0.24f};
VertexShaderConstant[5]={7f,7f,7f,7f};
PixelShaderConstant[0]={0.628f,0.373f,0.121f,0.424f};
VertexShader =
decl
{
stream 0;
float v0[3]; //Position
float v1[3]; //Normal
float v2[3]; //Texture Coordinates
}
asm
{
vs.1.1
// get model space vertex
mov r0, v0
// get shell distance
mov r1, c4
// offset shell in direction of normal
mul r1.x, r1.x, c5.x
mul r1.xyz, r1.xxx, v1.xyz
add r0.xyz, r0.xyz, r1.xyz
// output transformed vertex
m4x4 oPos, r0, c0
// output texture coordinates
mov oT0, v2
};
}
pass p7
{
Texture[0] = <entSkin1>;
VertexShaderConstant[0]=<matWorldViewProj>;
VertexShaderConstant[4]={0.24f,0.24f,0.24f,0.24f};
VertexShaderConstant[5]={8f,8f,8f,8f};
PixelShaderConstant[0]={0.628f,0.373f,0.121f,0.424f};
VertexShader =
decl
{
stream 0;
float v0[3]; //Position
float v1[3]; //Normal
float v2[3]; //Texture Coordinates
}
asm
{
vs.1.1
// get model space vertex
mov r0, v0
// get shell distance
mov r1, c4
// offset shell in direction of normal
mul r1.x, r1.x, c5.x
mul r1.xyz, r1.xxx, v1.xyz
add r0.xyz, r0.xyz, r1.xyz
// output transformed vertex
m4x4 oPos, r0, c0
// output texture coordinates
mov oT0, v2
};
}
pass p8
{
Texture[0] = <entSkin1>;
VertexShaderConstant[0]=<matWorldViewProj>;
VertexShaderConstant[4]={0.24f,0.24f,0.24f,0.24f};
VertexShaderConstant[5]={9f,9f,9f,9f};
PixelShaderConstant[0]={0.628f,0.373f,0.121f,0.424f};
VertexShader =
decl
{
stream 0;
float v0[3]; //Position
float v1[3]; //Normal
float v2[3]; //Texture Coordinates
}
asm
{
vs.1.1
// get model space vertex
mov r0, v0
// get shell distance
mov r1, c4
// offset shell in direction of normal
mul r1.x, r1.x, c5.x
mul r1.xyz, r1.xxx, v1.xyz
add r0.xyz, r0.xyz, r1.xyz
// output transformed vertex
m4x4 oPos, r0, c0
// output texture coordinates
mov oT0, v2
};
}
pass p9
{
Texture[0] = <entSkin1>;
VertexShaderConstant[0]=<matWorldViewProj>;
VertexShaderConstant[4]={0.24f,0.24f,0.24f,0.24f};
VertexShaderConstant[5]={10f,10f,10f,10f};
PixelShaderConstant[0]={0.628f,0.373f,0.121f,0.424f};
VertexShader =
decl
{
stream 0;
float v0[3]; //Position
float v1[3]; //Normal
float v2[3]; //Texture Coordinates
}
asm
{
vs.1.1
// get model space vertex
mov r0, v0
// get shell distance
mov r1, c4
// offset shell in direction of normal
mul r1.x, r1.x, c5.x
mul r1.xyz, r1.xxx, v1.xyz
add r0.xyz, r0.xyz, r1.xyz
// output transformed vertex
m4x4 oPos, r0, c0
// output texture coordinates
mov oT0, v2
};
}
pass p10
{
Texture[0] = <entSkin1>;
VertexShaderConstant[0]=<matWorldViewProj>;
VertexShaderConstant[4]={0.24f,0.24f,0.24f,0.24f};
VertexShaderConstant[5]={11f,11f,11f,11f};
PixelShaderConstant[0]={0.628f,0.373f,0.121f,0.424f};
VertexShader =
decl
{
stream 0;
float v0[3]; //Position
float v1[3]; //Normal
float v2[3]; //Texture Coordinates
}
asm
{
vs.1.1
// get model space vertex
mov r0, v0
// get shell distance
mov r1, c4
// offset shell in direction of normal
mul r1.x, r1.x, c5.x
mul r1.xyz, r1.xxx, v1.xyz
add r0.xyz, r0.xyz, r1.xyz
// output transformed vertex
m4x4 oPos, r0, c0
// output texture coordinates
mov oT0, v2
};
}
pass p11
{
Texture[0] = <entSkin1>;
VertexShaderConstant[0]=<matWorldViewProj>;
VertexShaderConstant[4]={0.24f,0.24f,0.24f,0.24f};
VertexShaderConstant[5]={12f,12f,12f,12f};
PixelShaderConstant[0]={0.628f,0.373f,0.121f,0.424f};
VertexShader =
decl
{
stream 0;
float v0[3]; //Position
float v1[3]; //Normal
float v2[3]; //Texture Coordinates
}
asm
{
vs.1.1
// get model space vertex
mov r0, v0
// get shell distance
mov r1, c4
// offset shell in direction of normal
mul r1.x, r1.x, c5.x
mul r1.xyz, r1.xxx, v1.xyz
add r0.xyz, r0.xyz, r1.xyz
// output transformed vertex
m4x4 oPos, r0, c0
// output texture coordinates
mov oT0, v2
};
}
pass p12
{
Texture[0] = <entSkin1>;
VertexShaderConstant[0]=<matWorldViewProj>;
VertexShaderConstant[4]={0.24f,0.24f,0.24f,0.24f};
VertexShaderConstant[5]={13f,13f,13f,13f};
PixelShaderConstant[0]={0.628f,0.373f,0.121f,0.424f};
VertexShader =
decl
{
stream 0;
float v0[3]; //Position
float v1[3]; //Normal
float v2[3]; //Texture Coordinates
}
asm
{
vs.1.1
// get model space vertex
mov r0, v0
// get shell distance
mov r1, c4
// offset shell in direction of normal
mul r1.x, r1.x, c5.x
mul r1.xyz, r1.xxx, v1.xyz
add r0.xyz, r0.xyz, r1.xyz
// output transformed vertex
m4x4 oPos, r0, c0
// output texture coordinates
mov oT0, v2
};
}
pass p13
{
Texture[0] = <entSkin1>;
VertexShaderConstant[0]=<matWorldViewProj>;
VertexShaderConstant[4]={0.24f,0.24f,0.24f,0.24f};
VertexShaderConstant[5]={14f,14f,14f,14f};
PixelShaderConstant[0]={0.628f,0.373f,0.121f,0.424f};
VertexShader =
decl
{
stream 0;
float v0[3]; //Position
float v1[3]; //Normal
float v2[3]; //Texture Coordinates
}
asm
{
vs.1.1
// get model space vertex
mov r0, v0
// get shell distance
mov r1, c4
// offset shell in direction of normal
mul r1.x, r1.x, c5.x
mul r1.xyz, r1.xxx, v1.xyz
add r0.xyz, r0.xyz, r1.xyz
// output transformed vertex
m4x4 oPos, r0, c0
// output texture coordinates
mov oT0, v2
};
}
}
";
}
ACTION atifur
{
my.material=grass01;
}