@ello: Thanks, this is good news.

@makai:
I had weird results with the textures if put the alphaTGA in the entSkins. I kept them as mtlSkins.

Lets see.... you could try adding the new things ("//<<<<<<< NEW") in the code, and playing with that. This might give you a start in a direction to tinker with it.

Let me know what happens so I can update the demo if need be before too many people get a hold of it.

technique ffp_terrain_tex
{
pass P0
{

alphablendenable=false;
alphatestenable=false; //<<<<<<< NEW
zenable=true; //<<<<<<< NEW
zwriteenable=true; //<<<<<<< NEW
cullmode=none; //<<<<<<< NEW
//
// Stage 0
//
Texture[0] = <entSkin1>;

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




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

ColorArg1[0] = Texture;
ColorOp[0] = selectarg1;

alphaop[0]=disable;

//
//stage 1
//
colorop[1]=disable;
alphaop[1]=disable;

}

pass P1
{

// We need to enable alphablending

alphablendenable=true;
srcblend=srcalpha;
destblend=invsrcalpha;
alphatestenable=true; //<<<<<<< NEW
cullmode=none; //<<<<<<< NEW
zenable=false; //<<<<<<< NEW
zwriteenable=false; //<<<<<<< NEW

//
// Stage 0
//
Texture[0] = <mtlSkin2>;

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

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

texcoordindex[0]=1;

ColorArg1[0] = current;
ColorOp[0] = selectarg1;
alphaarg1[0] = texture | alphareplicate;
alphaop[0]=selectarg1;

//
// Stage 1
//
Texture[1] = <entSkin2>;//sand

cullmode=none; //<<<<<<< NEW
zenable=true; //<<<<<<< NEW
zwriteenable=true; //<<<<<<< NEW

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


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

ColorArg1[1] = texture;
ColorOp[1] = modulate;
alphaarg1[1] = current | alphareplicate;
alphaop[1]=disable;

//
// Stage 2
//
colorop[2]=disable;
alphaop[2]=disable;


}


Eric