Jump to content
  • Advertisement
Sign in to follow this  
Aqua Costa

[DirectX 10] Blinn-Phong lighting explanation

This topic is 2956 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi,
When I implemented lighting in my game engine, I used some code I found on the Internet without understanding it very well...

So now I want to make everything about the Blinn-Phong lighting clear:

This is my shader for calculating Parallel Light:
(The end of shader might seem strange because Im implementing Light Pre-Pass)

float4 ParallelLight(Surface v, Light L, float3 eyePos)
{
float3 litColor = float3(1.0f,1.0f,1.0f);

float3 lightVec = -normalize(L.dir);

float NdL = dot(v.normal, lightVec);
float3 reflectionVector = normalize(reflect(-lightVec, v.normal));
float3 directionToCamera = normalize(eyePos - v.pos);
float specPower = max(v.spec.a, 10.0f);
float specFactor = pow(saturate(dot(reflectionVector, directionToCamera)), specPower);

return float4(L.diffuse.x * NdL, L.diffuse.y * NdL, L.diffuse.z * NdL, specFactor * NdL);
}




->N.L (N.L):
For what I've understood N.L = dot(pixel normal in world space(I guess), light direction vector

->N.H^n:
Ive seen this on many articles but I dont know if I calculate this, because I dont know what N.H^n is...

->Half vector (half vector between light vector and view vector):
Ive seen this in wikipedia but I don't understand the point of it...

->Etc...

So can anyone explain me this terms and others that might be important?

Ive found this shader on Wikipedia: http://en.wikipedia.org/wiki/Blinn%E2%80%93Phong_shading_model
And it is a lot simpler, so do this shader give realistic results?

Share this post


Link to post
Share on other sites
Advertisement
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!