Just found some great Java applications on the Brown University website from almost 20 years ago.
These are essentially exactly what I want to do in my WPF application (like I briefly described in the last post), except with with textures, etc 🙂
It looks like the swatch generated on the left hand side is a result of calculating reflectance before converting to RGB, and the right hand side is converting each element to RGB then multiplying (like we do with current CG lighting).
It is easy to come up with lighting and reflectance combinations that cause a great variety in results, for example:
In fact, what I should have shown is one of the examples I listed in my previous post 🙂
An orange object lit by a red light. It should be black (there’s no overlap in spectrums), so on the left hand side you’ll see the result is black, and on the right hand side (CG lighting), you’ll see that the object is lit dark red.
That’s a pretty big margin of error, and makes for a very inaccurate CG render.