uniform float4x4 matViewProjection;
uniform float4x4 matWorldInverseTranspose;
uniform float4x4 matRot;

struct VS_INPUT 
{
	float4 Position   : POSITION;
	float2 TexCoord0  : TEXCOORD0;
	float4 Normal     : NORMAL;
};

struct VS_OUTPUT 
{
	float4 Position       : POSITION;
	float2 TexCoord0      : TEXCOORD0;

	float4 Normal         : TEXCOORD1;
};

VS_OUTPUT main( VS_INPUT IN )
{
   VS_OUTPUT OUT;

   OUT.Position = mul( matViewProjection, IN.Position );
   OUT.TexCoord0 = IN.TexCoord0;
   
   //float4 vNormRot = mul( matRot, IN.Normal );
   OUT.Normal = mul( matWorldInverseTranspose, IN.Normal );
   
   return( OUT );
}