Or: what do I have to put into the Reflection Value field (Advanced interface)? Or: with what factor do I have to dim (multiply) the color I used according to the previous article? The latter is a much recommended approach when applying Gamma Correction (as available in PoserPro, and Poser 10 and up) to the rendering process. In that case, the Value itself should remain 1.0. Merging the reflectivity value into the color swatch is even a necessity when using Alternate_Diffuse instead of Reflection_Color, as Alternate_Diffuse does not offer a Value slot. This approach is recommended when the material definition offers some Transparency as well.
The value I’m looking for is: reflectivity.
On contrast to common expectations, shiny and reflecting materials only bounce a very limited amount of the light received, back towards the camera, into the render. In jargon: reflectivity is low. That expectations are high is understandable:
- Highlights on a surface do stand out. This however is not due to the reflectivity of the surface, but because the lights which are reflected do stand out in their environment themselves. In Poser however, highlights are addressed by specularity, not by reflection.
- Water, car and glass surfaces do appear quite reflective. This is because reflectivity increases enormously with skew angles, and that’s the usual way we see the environment reflected on those objects (Fresnel effect).
A plain, straightforward, perpendicular reflection, enabling me to see my own face reflected by the surface, is only strong in metals, and mirrors since these are coated with a metallic layer at the backside. The reflectivity of common materials can be found in the table presented below. The table also mentions the color, if any.
Table of Refraction Index (IoR) and Reflectivity (R)
|Material||Refraction index (**)||Reflectivity||Coloring (RGB)||Result (RGB) = Reflectivity*Color|
|Water||1.33||0.020||5, 5, 5|
|Sugar solution||1.42||0.030||8, 8, 8|
|Oily fluids||1.50||0.040||10, 10, 10|
|Glass||1.50||0.040||10, 10, 10|
|Heavy Glass||1.60||0.053||13, 13, 13|
|Impure glass||1.80||0.082||21, 21, 21|
|Opal||1.45||0.034||9, 9, 9|
|Quartz||1.50||0.040||10, 10, 10|
|Salt||1.50||0.040||10, 10, 10|
(90.2%, 68.6%, 0%)
|12, 12, 12|
|Onyx, Amethyst||1.55||0.047||12, 12, 12|
|Pearl||1.60||0.053||13, 13, 13|
|Aquamarine, Emerald (*)||1.60||0.053||Light Cyan, Green
(0%, 66.7%, 45,1%)
|13, 13, 13|
|Turquoise, Tourmaline (*)||1.65||0.060||Dark Cyan
(0%, 50%, 50%)
|15, 15, 15|
|Sapphire (*)||1.77||0.077||Dark Red
(50%, 0%, 0%)
|20, 20, 20|
|Zirconia||2.15||0.133||34, 34, 34|
|Diamond||2.40||0.170||43, 43, 43|
(50%, 50%, 62.5%)
|41, 41, 51|
|Titanium||6.15||0.519||132, 132, 132|
|Tin (Sn)||6.54||0.540||138, 138, 138|
|Chrome||6.76||0.551||141, 141, 141|
|Nickel||8.79||0.633||161, 161, 161|
|Platinum||9.45||0.654||167, 167, 167|
(86.3%, 35.3%, 0%)
|206, 84, 0|
(100%, 70.6%, 0%)
|229, 161, 0|
(95%, 95%, 100%)
|221, 221, 233|
|Silver||119.20||0.967||247, 247, 247|
|Zinc||17.94||0.800||204, 204, 204|
|Steel||11.25||0.700||178, 178, 178|
See http://refractiveindex.info/ for details on all sorts of stuff. See for colors.
(*) for fluids, glasses and gems the color affects the light passing through. The reflection color however is white, as these ain’t metals.
(**) On Refraction Index. Warning: High School Math stuff ahead.
R = [ (IoR -1)/(IoR +1) ]2 and/or IoR = ( 1+ √R) / (1- √R) (√ for square root)
This too stresses that reflectivity is quite low (less than 10% in most cases) for transparent materials like fluids and glasses, while the Index of Refraction is pretty high (usually 10 and up) for non-transparent metals. It’s this IoR value that has to be used in Fresnel nodes and the like. When you like to have a more detailed understanding, try a physics class on optics for a change. Kidding, it’s complex stuff.
Metals are combined, usually for the physical properties of the resulting alloys. These are stronger, more flexible, more durable, less brittle, cheaper, and so on, compared to the pure stuff. For Poser renders, I’m doing quite well when simply using the mixing percentages for the resulting color and reflectivity.
|Yellow Gold (22K)||92% Gold, 5% Silver, 2% Copper 1% Zinc|
|Red Gold (18K)||75% Gold, 25% Copper|
|Rose Gold||75% Gold, 22% Copper, 3% Silver|
|Pink Gold||75% Gold, 20% Copper, 5% Silver|
|White Gold||75% Gold, 25% Platinum|
|Soft Green Gold||75% Gold, 25% Silver|
|Green Gold||75% Gold, 20% Silver, 5% Copper|
|Purple Gold||80% Gold, 20% Aluminum|
|Brass||67% Copper 33% Zinc|
|Bronze||88% Copper 12% Tin|
|Yellow Copper (Messing)||60% Copper, 40% Zinc|
|Pewter||90% Tin 10% Lead|
For example: when mixing 90% Gold (reflectivity 0.897) and 10% Silver (reflectivity 0.967) then the resulting alloy will have a reflectivity of 90% x 0.897 + 10% x 0.967 = 0.994. And I can do a similar thing to the RGB values of their respective colors.
Making an Easy Life hard
So, I can look up the color and the reflectivity of a metal, a glass or fluid, put these values in the Reflection_Color and Value fields respectively, and I’m done?
Not really, as I have to compensate for double-counting. For instance, the material at hand has no specific reflection color but does have a 70% reflectivity. Then I can either put in White for Color and 70% for Value, or I put in 70% Grey for Color and 100% for Value. But I should not combine 70% Grey in Color with 70% in Value, as that will reduce the surface reflections to 70% x 70% = 49% instead. This especially requires some care when a color is applied indeed. When that color has 90% brightness, then the first step in reduced reflectivity is already taken care of. Applying a reflectivity value of 80% as well will reduce the surface reflections to 90% x 80% = 72%. Vice versa, when I want that say 70% overall, then I should enter the appropriate 90%/70% = 80% in the Value field.
The recommended approach however is to reduce the brightness of the color swatch, and leave the Value at 1.0. Or even better, plugin any reflection node into Alternate Diffuse instead of Reflection_Color. See this article for details on both.
Okay, so I’ve got a color like RGB = (50%, 50%, 62.5%) or as Poser says: (127, 127, 159) and I want to turn it into its 100% brightness equivalent. How should I do that?
- Take the largest number, which is 62,5% or 159 for Blue in the example
- Divide all RGB values by that number, and multiply by 100% or 255 respectively In the example, that would make 50/62,5*100% => 80% , 80%, 100% or 127/159*255 => 204, 204, 255.
- Now, the Value field can get its proper Reflectivity, or the color swatch can get dimmed to the proper result. A 20% reflectivity will then result in 16%,16%,20% or 41,41,51.