reflectance(theta)
= R0 + ( 1 - R0 )( 1 - cos(theta) )^5
(where: R0 is some initial
reflectance, given by the object's properties.
cos(theta) = -Incident dot N)
Now if the object's is not fully opaque, then R0 is given by:
R0 = (1-n)^2 / (1+n)^2
(where n is the objects
index of refraction)
and the amount of light transmitted = 1 - reflectance
Here are some preliminary results. I'm still using RGB but plan to switch to spectra soon and re-render the images.
| Here is some chrome metal | ![]() |
| Here is the above scene with a glass ball (index of refraction = 1.52) | ![]() |
| Some "Coke Bottle" glass. The green edges are due to impurities in the glass causing an exponential drop off in the light intensity. In this particular glass, green light is is not affected as much by the attenuation, thus the green tint. | ![]() |
| Some thicker "Coke Bottle" glass. | ![]() |
| Index of refraction = 1.08 |
![]() |
| Index of refraction = 1.52 | ![]() |
| Index of refraction = 1.52 | ![]() |