float4 CookPictureShader(VertexShaderOutput input) : COLOR0
{
float3 L = input.L;
float3 N = input.N;
float3 E = input.E;
float D = Roughness;
float F = R0;
float3 H = normalize(normalize(E)+L);
float HN = max(0.0000001f, dot(H,N));
float EN = max(0.0000001f, dot(E,N));
float LN = max(0.0000001f, dot(L,N));
float EH = max(0.0000001f, dot(E,H));
float G = min(1,min((2*HN*EN)/EH,(2*HN*LN)/EH));
float Specular = pow((D*F*G)/EN,SpecularPower);
return saturate(AmbientColor*AmbientIntensity + DiffuseColor*max(0,dot(N, L)) + SpecularColor*Specular);
}
Could anybody give me a hint?