azimakberali opened this issue on Nov 07, 2011 · 12 posts
bagginsbill posted Tue, 08 November 2011 at 6:39 AM
I have been studying (and personally researching) metal reflections for months now. We can get away with "simple" IOR to approximate metal behavior, but it isn't all that accurate. In fact, when you get into high "simple" IOR, such as 30, the curve it makes is not the curve of reflectivity that metals actually produce. To get that curve, you have to either use the complex IOR, given as values n and k, or use Schlick's approximation, but boosted into higher ranges, as Anthanasius did in the posted shader. The boosted approximation is more accurate than using the highly accurate PP2012 Fresnel_Blend node. The FB node only does "simple" IOR (given only a single numeric value) and it is correct only for dialectrics, not for metals. A high dialectric IOR produces a severe drop near 90 degrees that is not how real metals behave.
For any given "simple" IOR=n, the reflection value at normal incidence is ((n-1)/(n+1))^2.
IOR=30 corresponds with a reflection value at normal incidence of 87.5% - far too high for chrome, but reasonable for silver. A more correct "simple" IOR for chrome would be 10 - as this would yield a 67% reflection value. Of course, "artists" who use words like chrome but don't realy mean chrome are free to do any reflection value or IOR that suits the situation.
The actual IOR of chrome (and all other conductors) is a pair of numbers, and they are never above 4. I still do not have a straight answer for the math, which is very difficult to follow.
The normal indicence reflection value with k != 0 (metals) is:
((n-1)^2 + k^2) / ((n+1)^2 + k^2)
You can see from this that when k is 0, the value reduces to the dialectric case.
As an example of a typical metallic IOR, suppose n = 2 and k = 2. In that, the reflection value at normal incidence is:
(1 + 4) / (3 + 4) = .714
Whereas when k is 0 it is
1 / 3 = .333
The value k represents attenuation of light passing through the metal. It happens because the electrons are free to move in a metal, while not free to move in a dialectric. The movement of the electrons creates a secondary electromagnetic field that opposes the transmission of energy through the material.
Renderosity forum reply notifications are wonky. If I read a follow-up in a thread, but I don't myself reply, then notifications no longer happen AT ALL on that thread. So if I seem to be ignoring a question, that's why. (Updated September 23, 2019)