Jump to content
  • Advertisement
Sign in to follow this  
FrozenSnake

Pros and Cons with Specular and Diffuse lighting

This topic is 1872 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

First, I hope I post in the right forum for this question!

 

I am working on a shader in RenderMonkey and the shader is complete, so now I am writing a small report on the shader. My problem here is that I can't find any sources to read about pros and cons about "Specular light" and "Diffuse light". I have googled but I mainly find sources that is about what specular/diffuse light is, and these sources do not talk about the pros of each light model.

 

I have also checked in my course books to for some clues but I cannot find any. Do anyone here have any suggestion about where I can read about the pros and cons of these to light models? 

 

Best regards!

Share this post


Link to post
Share on other sites
Advertisement
Those aren't alternative lighting models, where one is weighed against the other pro and con to decide which one you go with. Each is a component of a single commonly used lighting model, contributing their own portion to the final coloration. Diffuse is for approximating the diffuse (hence the name), specular approximates the "shininess" or "glossiness". Used together, the combination of techniques can roughly approximate various different surfaces.

Share this post


Link to post
Share on other sites

Thanks for the reply!

One of the requirement on the report is to write pros/cons about specular and diffuse separate, I find it really hard :/

I'll try and write something and hope it works!

Share this post


Link to post
Share on other sites

Specular reflection is what occurs with a perfect mirror.
Diffuse reflection is what occurs with a theoretically perfectly matte surface (known as a Lambertian surface).
 
Neither of these exist in practice... they're the graphics programmer equivalent of how physicists like to work in a frictionless vacuum.
 
As mentioned by FLeBlanc, real life materials exist somewhere between these two extremes.
Generally, we model surfaces using a combination of the two; a diffuse-type reflection is used to model the refracted-and-diffused portion of the input light, and the specular-type reflection is used to model the portion of the light that reflects directly off a material without entering it.
 
This is nonsense to think of them in terms of pros and cons, because they're just different... What is this report that you're working on?
Pros:
Diffuse  -  Models refracted scattering.
Specular -  Models specular reflection.
Cons:
Diffuse  -  Doesn't model specular reflection...
Specular -  Doesn't model refracted scattering...

 

I guess if you're trying to model a theoretical material that's perfectly Lambertian (these don't exist, everything has a small specular reflection), and a material that's a perfect mirror (these don't exist either), and you have to pick just one of these models for some reason, then you could apply the above pro/con table to pick which one is most useful...

If you had to pick just one or the other, then you'd use diffuse for almost everything, and specular only for very shiny or translucent objects, like glass and metal... because usually the reflected portion of light is a much smaller percentage, so you'd get a better result modelling only the refracted light.

 

With pure metals, refracted light is never diffused/scattered (it's 100% absorbed), so you'd be better off only modelling the reflected light (which is therefore the only visible part).

With translucent materials, the refracted light isn't diffused/scattered, as it passes right through the object, so you'd again be better off just modelling the reflections.

But in most materials, the reflections will only account for <4% of the input light, so you'd be better off modelling the 96%+ of the light that is diffused.

 

 

There are many different diffuse and specular type models.

Lambertian is the most common diffuse model, and Phong or Blinn-Phong are probably the most common specular model.

There are many others though. For example, Oren–Nayar tries to improve upon Lambert's model to make it better approximate real world rough surfaces.

Likewise with specular, there's many better models than Blinn-Phong, such as Cook-Torrance.

 

As mentioned, any model of a real world material will use a combination of a diffuse and a specular model, blended together according to Fresnel's equations, which tells us how much light is refracted (and potentially diffused) vs how much is reflected. Again, in reality, both 'diffuse' and 'specular' occur, with the percentage of each ruled by Fresnel and the material's index of refraction.

Edited by Hodgman

Share this post


Link to post
Share on other sites

Thanks for the really nice reply! 

 

The report is for a course called "Advanced Computer Graphics" at my university. The teacher is very "flummig" (it translate to dopey), he doesn't give a straight answer when someone asks a question about the report, but the text say:

"Talk about the pros and cons with specular lighting

Talk about the pros and cons with diffuse lighting".

Share this post


Link to post
Share on other sites

One pro for diffuse lighting is that you can pre-compute complex (indirect) lighting for static scenes since it's not viewing direction dependend as long as you stick with Lambert which is sufficient in the most cases.

Share this post


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

  • Advertisement
×

Important Information

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

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!