MATERIAL* mtl_water =
{
effect =
"
float3 vecSunDir;
float4 vecTime;
float4x4 matWorld;
float4x4 matWorldViewProj;
texture entSkin1;
sampler SKIN1 = sampler_state {texture = <entSkin1>;};
//----------------------------------------------------------------------- color
void p0mainVS(
in float4 inPosition : POSITION0,
in float2 inTexCoord : TEXCOORD0,
in float3 inNormal : NORMAL,
out float4 outPosition : POSITION0,
out float2 outTexCoord : TEXCOORD0,
out float3 outDiffuse : COLOR0)
{
inPosition.y += sin((vecTime.w + inPosition.x) * 0.1) * 8;
outPosition = mul(inPosition, matWorldViewProj);
outTexCoord = inTexCoord;
outDiffuse = saturate(dot(mul(inNormal, matWorld), -vecSunDir)) * 0.6 + 0.4;
}
void p0mainPS(
in float4 inTexCoord: TEXCOORD0,
in float3 inDiffuse : COLOR0,
out float4 outColor : COLOR0)
{
float4 color = tex2D(SKIN1, inTexCoord);
outColor = color * float4(inDiffuse, 0.8);
}
//----------------------------------------------------------------------- technique
technique t0
{
pass p0
{
//zWriteEnable = false;
VertexShader = compile vs_1_1 p0mainVS();
PixelShader = compile ps_1_1 p0mainPS();
}
}
";
}