4
$\begingroup$

In Phong shading model (and other shading models as well), the light color is multiplied together with the surface color component-wise. I want to know the justification for this. Is this some what related to the physics of light?

$\endgroup$
3
  • $\begingroup$ As noted in that wikipedia article, the term "Phong shading" refers specifically to interpolating normals across a surface and using them in lighting computations. There is no multiplying of colors in "Phong shading"; that would be a part of "Phong lighting." $\endgroup$ Commented Oct 2, 2019 at 0:35
  • 3
    $\begingroup$ Multiplying the material colour by the light is an approximation of light absorption $\endgroup$
    – PaulHK
    Commented Oct 2, 2019 at 2:30
  • $\begingroup$ It is, consider the rendering equation: $$L_o = L_e + \int_{\Omega}fL_i\cos\theta\,d\omega$$ For Phong $f= k_d + k_s\frac{\cos\theta_r}{\cos\theta}$. $\endgroup$
    – lightxbulb
    Commented Oct 2, 2019 at 7:27

1 Answer 1

7
$\begingroup$

When you multiply colors together the surface color acts as a filter. Remember that colors are scaled from 0 to 1.

That way with white incoming light a green object will remain looking green.

This does bring a few issues because physical light isn't as orthogonal (where the 3 primary colors are actually overlapping frequency response functions) but for the vast majority of cases you can tweak the values enough for it to stay looking realistic.

$\endgroup$
1
  • $\begingroup$ You might want to add that the problems are not a major concern as a) phong isnt really well motivated from a measurement perspective b) If you need to account for real light then RGB is an approximation anyway. $\endgroup$
    – joojaa
    Commented Oct 3, 2019 at 5:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.