void main (out float4 lClip : TEXCOORD0, out float4 pClip : POSITION, out float diffuse : TEXCOORD1, float4 pObj : POSITION, float3 nObj : NORMAL, uniform float4x4 mvp, uniform float4x4 mv, uniform float4x4 mvIT, uniform float4x4 observerEyeToLightClip, uniform float4 lightPosEye) { pClip = mul(mvp, pObj); float3 nEye = mul(mvIT, float4(nObj, 0)).xyz; float4 pEye = mul(mv, pObj); lClip = mul(observerEyeToLightClip, pEye); diffuse = dot(normalize(nEye), normalize(lightPosEye.xyz - pEye.xyz)); }