Let’s continue the shader theme a bit further. Todays topic will be METALS
Metals are a special case – in their pure form, they do not have a Diffuse component, only reflections.
As if that were not enough, those reflections behave differently from non-metals.
They are much stronger, the fresnel equation (and the resulting curve) is more complex and the reflections are colored in a lot of cases.
Here is a comparison of reflection curves of aluminum and plastic.
Notice that overall reflections are stronger and that there is a dip towards the right end of the graph for the aluminum. The math to create this graph needs multiple values, not just a simple number for IOR.
Vray doesn’t natively support the complex fresnel equation with n and k values used for metals. So to get accurate reflections, we must use some tricks.
The first method (popularized by Grant Warwick in his Mastering VRay course) is by creating custom falloff curves by hand in the material editor.
This method works, although it is quite tedious to set up. If you watch his course you will see how to use it, I’m not going to repeat it here.
However, there is one important thing that Grant didn’t quite get correctly, so I feel like I should ‘fix’ it.
The falloff map in 3ds max works in a strange way, the actual values are not really exactly what they seem. It seems that the falloff goes from 0 to 90 degrees in a linear fashion, but that is simply not true. So if we place a point at 50% and expect it to represent the color at 45 degree incidence angle… it doesn’t really show up at 45 degrees.
Here’s a simple test setup and the results. The lines on the sphere are rotated at exactly 45 and 22.5 degrees As you can see, it simply does not match.
Thanks to on Wobi on chaosgroup forums for writing this osl you can use to ‘fix’ the falloff precisely. Just unzip and load this FILE as both Front and Side of the falloff and you can use the curves like Grant suggests in his videos.
After writing this post, there have been some changes that make the method below outdated. Siger from sigerstudio.eu has written a FREE plugin that works with older versions of vray and also has ready-made presets that allow you to get the correct metal reflections very quickly and easily!
Check it out HERE!
The second method (the one I prefer) uses a custom OSL shader as the reflection texture (load it into the reflection slot through VrayOSLTex node and make sure the Fresnel is off in the shader settings) and it’s a bit easier to use. You just have to enter the n and k values taken from the refractiveindex.info site for R, G and B wavelengths.
The actual values for red, green and blue are somewhat open to interpretation, Different sources use different numbers but the approximate range is similar.
I use values from NASA’s site: 0.650, 0.510, 0.475
Now the resulting reflection map has the correct color and the correct falloff calculated by the complex fresnel equation.
When you’ve set up the values for a particular metal, save the osl file for future use.
If the color feels a bit wrong or you need a slightly different alloy, just run the map through a color correction node and adjust the hue saturation there. This way you still have the correct starting point with correct falloff curve and are just making color changes.
Another interesting thing about metals is that they are actually almost never pure metals. As soon as they are exposed to air, they start to oxidize (tarnish, rust).
The resulting metal oxides behave like dielectrics. So this means they actually have a completely different set of properties. There are a couple of ways to deal with this: Blend materials and complex map setups in single layered shaders. I’ll demonstrate these workflows in detail pretty soon as a premium video.
That’s it for this chapter in the vray PBR material guide :)