www.pudn.com > SimulationOfWater.rar > terrain_underwater.fx, change:2004-03-18,size:1133b


// oi oi 
 
float4x4	mViewProj; 
float4x4	mView; 
float4		view_position; 
float3		watercolour; 
float		sun_shininess, sun_strength; 
float3		sun_vec; 
 
texture texDiffuse; 
 
struct VS_INPUT 
{ 
    float3 Pos      : POSITION; 
	float3 Normal   : NORMAL; 
	float2 tc		: TEXCOORD0; 
}; 
 
struct VS_OUTPUT 
{ 
    float4  Pos			: POSITION;     
	float2	tc			: TEXCOORD0; 
	float	fade		: TEXCOORD1; 
	float4	colour		: COLOR0; 
}; 
 
sampler sDiffuse = sampler_state 
{   
    Texture = <texDiffuse>;  
    MipFilter = NONE;  
    MinFilter = LINEAR;  
    MagFilter = LINEAR;  
	AddressU  = CLAMP;		 
	AddressV  = CLAMP;		 
}; 
 
VS_OUTPUT VShader(VS_INPUT i) 
{ 
    VS_OUTPUT o;	 
	o.Pos = mul(float4(i.Pos.x, 0.75*i.Pos.y,i.Pos.z, 1), mViewProj); 
	o.tc = i.tc; 
	o.colour = dot(sun_vec,i.Normal); 
	o.fade = 0.3 + 0.7 * saturate(-i.Pos.y*0.04); 
	return o; 
} 
 
float4 PShader(VS_OUTPUT i) : COLOR 
{	 
    return lerp(i.colour*tex2D(sDiffuse, i.tc), float4(watercolour,1), i.fade ); 
} 
 
technique T0 
{ 
    pass P0 
    {         
		pixelshader = compile ps_2_0 PShader(); 
		vertexshader = compile vs_1_1 VShader(); 
	} 
}