@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