An example of varnished wood floor material in V-Ray and 3ds max.
The material uses a VRayBlendMtl with 2 connected VRayMtl sub materials to simulate a natural wood base layer coated by a glossy varnish layer.
Explanation of the material node graph:
The wood color (Diffuse texture)
The wood black and white detail texture (used to add reflection detail)
The wood bump texture (actually the same as the reflection texture just color corrected to whiten most details except the lines separating the wood planks)
The reflection texture is color corrected to to intensify it prior to it being connected to the base wood layer material:
The reflection texture is color corrected to to decrease its intensity prior to it being connected to the varnish coat blend:
The base layer natural wood material with the Diffuse, Reflect and Bump textures connected to it:
The varnish coat material with the Bump texture connected to it:
* Note the Fresnel Reflections is turned off because the Fresnel reflection is calculated by the Falloff map (8)
The Falloff map that defines the amount with which the varnish coat material covers the base wood material,
A combination of Fresnel reflection intensity/Angle with the pre-processed reflection detail map (5):
The final VRayBlendMtl combining the base wood material with the varnish coat material using the Fresnel Falloff blend map:
The most realistic way to create real world metal shaders is to use Complex Fresnel reflection. Cycles has a general implementation of a Complex Fresnel reflection in its Principled shader (when Metallic is set to 1.0), but this implementation doesn’t allow using real world physical numeric Complex IOR values in order to accurately render physical metals.
You can use a Complex IOR OSL shader such as this one from Chaos Group,
But there are some limitations with it:
1) It isn’t supported in GPU rendering.
2) For some reason I don’t know I couldn’t get it to work with Cycles..
What we refer to in CG by the term “Fresnel Reflections” or “Fresnel Effect”, is the way Specular Reflection intensity changes according to light \ surface incident angle, and it is a basic optical property surfaces.
Specular reflection intensity changes according to light incident angle, and behaves almost like a perfect mirror at grazing view angle.
The reason we call this natural reflection behavior “Fresnel Effect” or “Fresnel Reflection” is that the equations describing the how reflection intensity changes according to incident angle were invented by the French Physicist Augustin-Jean Fresnel, and in early CG days, not all systems knew how to calculate natural reflections or reflections at all for that matter. So in CG we ended up treating this as something special, when in fact it’s not special in nature, it was just special in the early days of ray-tracing.
When rendering Fresnel Reflections, the reflection intensity isn’t determined by a linear blending percent like mixing a layer.
It’s determined by a factor called “Refractive Index” or “Index Of Refraction” i.e. IOR.
The IOR value is derived from the physical material’s density, which is the key factor determining both reflection intensity and refraction amount.
Examples of some physical IOR values*:
Air (vacuum): 1.0
Water: 1.33
Glass: 1.52
Diamond: 2.417
* Physical values differ between different measurements and samples of materials so you might see differences between different data sources.
This ball is rendered without “Fresnel Reflections”.
Its Specular reflection is blended consistently at 50% over the diffuse color (reflection), not affected by the light/view incident angle.
The result looks wrong for a natural material. It may look like a dielectric material (non metal) that’s coated with a silvery coating, but it can’t look correctly like glossy plastic or glass.
This ball is rendered with “Fresnel Reflections”.
The reflections look natural for a dielectric material (non metal), because they are dim at perpendicular incident angle and intense at grazing view angle, hence seen mostly at the sides of the ball accentuating its contour.
Theoretically Specular Reflection for all types of materials should be calculated using what we refer to in CG by the term “Complex Fresnel”, that is reflection equations that take into account both the Refractive Index (IOR) and Extinction Coefficient for 3 primary colors (spectrum wave lengths).
*Complex Fresnel component values for different materials can be found on https://refractiveindex.info/.
In practice, for Dielectric materials (non metals), most common production rendering systems use what we refer to in CG by the term “Simple Fresnel” or “Simple IOR”, that is calculating the reflection for all 3 primary colors using a single Refractive Index value, which is the surface’s Refractive Index for the Green primary color.
This method has proven itself to be very efficient for rendering non-metallic surfaces (dielectric materials).
Rendering metallic reflection using Complex IOR produces the most realistic color and reflection* for metals.
*In metallic surfaces the color is the reflection color itself and not a separate Diffuse component.
Some rendering systems like Arnold 5 for example have implemented a general form* of Complex IOR into their physical surface shader, Complex IOR reflection can also be rendered via OSL shaders that can be found on the web (or written..).
*I’m using the term ‘general form’ because these implementations don’t include input for Complex IOR values but just a general metallic reflection curve, that interpolates manual color selection.
Popular useful cheats for mimicking metallic reflection without complex IOR are to set a very high (non physical) simple IOR value, like 15 to 30 which forces the Fresnel reflection to become more metal-like, or turn Fresnel reflection completely off, turning the specular reflection into a perfect mirror reflection, or create a custom reflection/angle curve/ramp that produces the effect of the metallic reflection color and intensity changing by incident angle, see example here.
In many popular production renderers, the physical surface shader uses a single IOR parameter. Some rendering systems allow using 2 different IOR parameters, one for calculating reflections and the other for calculating Refraction.
* physically correct dielectric materials should be defined with the same IOR value for both reflections and refraction. using different IOR values for reflection and refraction allows useful cheats like creating transparent a material that is modeled without any thickness or defining a transparent glass that has silver reflective coating like sunglasses sometimes have.
Notes:
IOR lists on the web, that display only simple IOR values like this list, are not valid for metals, and produce wrong results.
*Using simple IOR values for dielectric materials however is very efficient.
There are parts in the CG industry where in daily slang language, the term “Fresnel” is used to refer to any shading effect that is view-angle dependent,
Usually referring to the shading properties appearing at the “sides” or contours of the model.
There are some CG systems that use the term Fresnel to refer to a simple linear or non-linear incident angle blending effect, that should actually be called “Facing ratio” or “Perpendicular-Parallel” blending (falloff).
This is wrong because IOR based Fresnel reflection intensity produces a specific physical Reflection intensity/view angle function curve, and not just a linear or simple power function.
See example in UE4’s Fresnel node.
Some PBR rendering systems using implementations of the Disney principled BRDF don’t use a Fresnel IOR input value for dielectric materials, but instead use a simpler 0 – 1 (or higher) Specular input parameter that produces dielectric reflections of approximately 1.0 to ~1.8 IOR value range, which generally covers the range between no reflection at all to common gemstones.
This approach may be inconvenient for rendering artists that are used to setting IOR values, but it has a significant advantage of allowing the usage of an LDR 0 – 1 range (regular image file) texture map for the Specular input, and that way be able to define different material reflections on the same object, rather than having to create a physical IOR map that has encode higher than 1 float values or be mapped to that range at the shading graph.
* See Blender’s Pricipled BSDF and Unreal Engine’s PBR Material.
* Blender’s Principled BSDF actually allows setting Specular values higher than 1 to render material denser than IOR 1.8 (like a diamond for example).
Many modern production renderers use Schlick’s Approximation to render Fresnel reflections, a simplified Fresnel formula that is both faster to compute and better suited for microfacet glossy reflection models.
Software: 3ds max 2019 | V-Ray Next | V-Ray next GPU
In V-Ray Next (4) for 3ds max, a new Metalness parameter has been added to the Reflect parameters of the VRayMtl material.
This allows for easy creation of realistic metal materials and also effectively enables a PBR workflow with V-Ray.
When the Metalness parameter is set to 1.0, the material becomes completely reflective, the Diffuse color controls the general reflection color, and the Reflect color (which should generally be set to white) controls the reflection color at grazing incidence angle.
The IOR parameter still controls how fast will the main reflection color (set by the Diffuse color) blend into the Reflection color, and I don’t know whether some form of complex Fresnel has been implemented or if it’s just a dielectric simple Fresnel blended over a reflective surface.
One of the optical properties of many metallic surfaces is changing it’s color slightly as the surface viewing angle changes.
This effect can be simply created using a Fresnel node and a color-ramp texture.
Create a metallic material (metallic value of 1.0).
Use an image editing software to create a linear color ramp texture (gradient) of the color change per viewing angle from left to right. like this example for a golden metal, and import it to your project.
Add the ramp texture to the material Blueprint, and connect it to the material Base Color Input.
Create aFresnel node and set its Exponent value to 1.0 and its Base Reflect Fraction to a value of 0.0 so it will provide a linear angle blend value.
Connect the Fresnel node’s output to the UVs input of the ramp texture node.
* the reason the Fresnel node can be providing both the X and Y texture coordinates is that the texture’s Y dimension provides the same color for all values anyway.
Note:
When the Metallic property of an Unreal Engine material is set to 1.0, the material automatically simulates the metal’s color fading to white at parallel surface viewing angle (the sides) like it should.
So using a Color Ramp Texture like in this example creates an amplified effect.
* Simply put: You don’t have to have the Color Ramp fade to white on the right side of the texture..
The UE4 Fresnel node is actually a “Facing Ratio” node (aka Perpendicular / Parallel) with some extra control.
It basically allows controlling material effects according to the incident angle the surface is viewed at, which is a hugely important feature for designing advanced material effects.
Exponent:
The steepness of the value / angle curve.
Base Reflect Fraction:
The value at perpendicular angle.
Normal:
An option to connect World Space surface normals input to affect the output of the Fresnel node.
* Tangent Space normals must be converted to World Space by using a Transform Vector node.
Note:
A value of 1.0 for the Exponent parameter, and a value of 0.0 for the Base Reflect Fraction will produce a linear “Facing Ratio” (“Perpendicular / Parallel”) falloff blend.
Create a new material, and double click it to edit it.
In the Details panel, under Material, set Blend Mode to Translucent.
In the Details panel, under Translucency, set Lighting Mode to Surface Translucency Volume.
Set Base Color to White.
Set Metallic to 1.
Set Roughness to 0.
Create a Fresnel node and connect it to the Opacity input.
In the Fresnel node, set Base Reflect Fraction to control reflection amount in perpendicular surface viewing angle (front).
* Note that its connected to Opacity, but since the material is basically a flat mirror, when it’s not purely transparent it will be reflective.
In the Fresnel node, set Exponent to control the reflection amount falloff curve from perpendicular surface viewing angle (front) to parallel surface viewing angle (sides).
* Higher values will create a steep falloff curve, resulting in less reflection in most viewing angles.