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; float3 WorldView : TEXCOORD4; float3 test1 : TEXCOORD5; float3 test2 : TEXCOORD5; }; vertexOut main(vertexIn IN, uniform float4 lightpos) { vertexOut OUT; float4 LightPos = float4 (10, -10, 0, 1);//lightpos; float3 wpos = mul (glstate.matrix.modelview[0], IN.Position).xyz; OUT.WorldNormal = normalize (mul (glstate.matrix.invtrans.modelview[0], IN.Normal).xyz); OUT.EyeVec = normalize (wpos); OUT.WorldView = normalize (glstate.matrix.invtrans.projection[3].xyz - wpos); OUT.LightVec = normalize (LightPos - wpos); OUT.HPosition = mul (glstate.matrix.mvp, IN.Position); OUT.TexCoord = IN.UV; return OUT; }