struct vertexIn { float4 Position : POSITION; float4 Normal : NORMAL; float4 UV : TEXCOORD0; }; struct vertexOut { float4 HPosition : POSITION; float4 TexCoord : TEXCOORD0; float3 LightVec : TEXCOORD1; float3 EyeVec : TEXCOORD2; float3 WorldNormal : TEXCOORD3; }; vertexOut main(vertexIn IN) { vertexOut OUT; float4 LightPos = { 0, 2, 5, 1 }; OUT.WorldNormal = normalize (IN.Normal.xyz); OUT.EyeVec = normalize (IN.Position).xyz; OUT.LightVec = normalize (LightPos - IN.Position).xyz; OUT.HPosition = mul (glstate.matrix.mvp, IN.Position); OUT.TexCoord = IN.UV; return OUT; }