/* attempt to deal with prototype, bootstrap, jquery conflicts */ /* for dropdown menus */

Jump to content

Image of the Day

Today's #ScreenshotSaturday features Face Your Fears from Turtle Roc ... #virtualrealityshop #mobilevr #vrshop https://t.co/3qhSNAVNOZ
IOTD | Top Screenshots

The latest, straight to your Inbox.

Subscribe to GameDev.net's newsletters to receive the latest updates and exclusive content.

Sign up now

Pros and Cons with Specular and Diffuse lighting

4: Adsense

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
5 replies to this topic

#1 FrozenSnake   Members   


Posted 04 May 2013 - 08:44 AM

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!

#2 FLeBlanc   Members   


Posted 04 May 2013 - 08:55 AM

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.

#3 FrozenSnake   Members   


Posted 04 May 2013 - 10:04 AM

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!

#4 Hodgman   Moderators   


Posted 04 May 2013 - 10:25 AM

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?
Diffuse  -  Models refracted scattering.
Specular -  Models specular reflection.
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, 04 May 2013 - 10:29 AM.

#5 FrozenSnake   Members   


Posted 04 May 2013 - 10:31 AM

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".

#6 Tasty Texel   Members   


Posted 04 May 2013 - 01:09 PM

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.

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.