Would I be able to do some testing of you new shader as well? I couldnt convert your old one completely to directx 9, just the FFP part of it... it seems to run a bit slower than the pixelshader/vertexshader version of it. I cant seem to convert the pixelshader version of it right. Also, while I got the FFP version of it working right I cant seem to get the textures to change there uvscale independantly. Hope your new shader will be able to do this stuff - Thanks, I also appreciate all the hard work your putting into progressing shaders in 3DGS!!

BTW - Steempipes FFP shader edited slightly to work with DX9

Code:
 

///////////////////////////////////////////////////////////
// FFP Terrain MultiTexturing Effect
//
// By: Eric A. Hendrickson-Lambert (Steempipe)
//

bmap grass = <ashpalt3.bmp>;//gets blended with the blue channel
bmap Alpha_M = <pointysharpparkt.tga>; // Alpha Map/texture

function mtl_terraintex_init()
{
bmap_to_mipmap(mtl.skin2);
// Adjust the texture transform to do some tiling of the textures
mtl.matrix11 = float(1); // Tileing of the textures
mtl.matrix22 = float(1); // Tileing of the textures
}

material mat_terraintex
{
Skin1 = grass;
Skin2 = Alpha_M;

event = mtl_terraintex_init;

effect =
"
texture mtlSkin1; // Grass
texture mtlSkin2; // alphamap

matrix matWorldViewProj;
matrix matWorld;
matrix matWorldView;

vector vecSunDir;
vector vecDiffuse;
vector vecAmbient;
vector vecLight;
vector vecFog;
vector vecSkill41;

matrix matMtl;

// default technique
technique ffp_terrain_tex
{
pass P0
{
//fillmode = wireframe;

alphablendenable=false;
Texture[0] = <mtlSkin1>;

magFilter[0]=linear;
minFilter[0]=linear;
mipFilter[0]=linear;

TextureTransformFlags[0] = Count2;
TextureTransform[0] = <matMtl>;
texcoordindex[0]=1;

colorArg1[0] = Texture;
colorOp[0] = selectarg1;
alphaop[0]=disable;
colorop[1]=disable;
alphaop[1]=disable;
//disable, modulate, modulate2x, modulate4x, add, subtract, addsigned, addsigned2x, tfactor, dotproduct3, envbumpmap, envemumap

}

pass P1
{
alphablendenable=true; // We need to enable alphablending
srcblend=srcalpha;
destblend=invsrcalpha;

Texture[0] = <mtlSkin2>;

magFilter[0]=linear;
minFilter[0]=linear;
mipFilter[0]=linear;

TextureTransformFlags[0] = disable;// We don't want the alphamap to tile

texcoordindex[0]=0;

colorArg1[0] = current;
colorOp[0] = selectarg1;
alphaarg1[0] = Texture | alphareplicate;
alphaop[0]=selectarg1;

Texture[1] = <mtlSkin2>;//sand

magFilter[1]=linear;
minFilter[1]=linear;
mipFilter[1]=linear;

TextureTransformFlags[1] = Count2;
TextureTransform[1] = <matMtl>;
texcoordindex[1]=1;

colorArg1[1] = Texture;
colorOp[1] = addsigned;
alphaarg1[1] = current | alphareplicate;
alphaop[1]=disable;

// colorop[2]=modulate;
alphaop[2]=disable;
}
}
"; // end of the effect string
}

action Terrain
{
my.ambient = 4; //change brightness
my.material = mat_terraintex;
}




Check out Silas. www.kartsilas.com

Hear my band Finding Fire - www.myspace.com/findingfire

Daily dev updates - http://kartsilas.blogspot.com/