Okay.... My "water.tga" is this:
The color and the noise is in the RGB channel, but it is also using the tex in the alpha channel to do some scaling of the noise. Also, without it you will not get your transparency to work.
I used a flat terrain to render the effect to.
Depending on the size/scale of your model, you will need to adjust some areas.
First the vertex shader:
For the scaling and the scroll, you only need to concern yourself with the X and Y's.
ex; VertexShaderConstant[11]={X, Y, Z, W}; //First noise texture
<<------The scroll speed of the textures.
If you have a small model then try smaller numbers?? I forget exactly.
Note: The (3) noise textures are derived from the water color texture RGB channels.
// scroll speed - change as needed with model scaling
VertexShaderConstant[11]={0.0f, 1.0f, 0.0f, 0.0f}; //First noise texture
VertexShaderConstant[12]={0.0f, -1.2f, 0.0f, 0.0f}; //Second noise texture
VertexShaderConstant[13]={1.0f, 1.5f, 0.0f, 0.0f}; //Third noise texture
The scale of the (3) noise textures:
// scale - change according to model scaleing
VertexShaderConstant[14]={2.0f, 2.0f, 0.0f, 0.0f}; //First noise tex
VertexShaderConstant[15]={3.0f, 3.0f, 0.0f, 0.0f}; //Second noise tex
VertexShaderConstant[16]={4.0f, 4.0f, 0.0f, 0.0f}; //Third noise tex.
In the action, the part that more or less seeds the vertex shader,
VertexShaderConstant[41]=<vecSkill41>;
Is indeed controlled by this in the action:
again, you may need to dick with it depending on the size of your model.
////////////////////////////////////////////////
var ShaderCount;
var ShaderCount2;
while(1)
{
my.skill41=float(ShaderCount);
my.skill42=float(ShaderCount2);
my.skill43=float(0);
my.skill44=float(0);
ShaderCount += 0.0015;
ShaderCount2 -= 0.0013;
..................................
The junk that you may need to change in the Action for the mesh deforming is, and here we go again, based on the model size:
///////////////////////////////
// I override the skills
my.activate_dist = 3000; //Distance from the player for deformation to start.
my.direction = 3;
my.wave_speed = 1.500;
my.skew_value = 0;
// Depending on the scale of the model the wave size will need adjusting.
// For instance, ff you scale the model up huge, then decrease wave size
my.wave_size = 0.06; //random(0.06)-0.06;
my.crests_per_unit = 10;
////////////////////////////////////////////
So really, depending on the model size you will need to tinker. Just plug some numbers ans see what happens. It will take tweaking because many factors.
Eric