Complex Fresnel texture for Cycles

Software:
Blender 2.79 | Cycles Renderer

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..

Seeing these limitations I decided to develop a Complex Fresnel/IOR texture for Cycles that will work on GPU, and your welcome to download it here on my studio’s website:
https://cg-lion.com/2018/07/08/free-complex-fresnel-texture-for-blender/

The blend file itself contains a text with some Complex IOR preset values for metals,
And you can get more physical IOR data from refractiveindex.info

Enjoy! 🙂

BlenderNation

Related:

  1. Fresnel Reflections
  2. Metallic shading in V-Ray Next
  3. Create rich metal in UE4 
  4. Customizable Photo-realistic Car-paint shader for Cycles

 

Cycles – Nested Refractive Volumes

Software:
Blender 2.79 | Cycles Renderer

When it comes to rendering nested refractive volumes, like a glass containing a beverage, the way to set it up in Cycles is common to many modern ray-tracers.
The touching bodies of refractive material like glass and liquid must overlap each other slightly so that rays being traced “meet” the right surface without having surfaces touching and causing “Z fighting” artifacts.

Transparencies_Air_Bubbles-01

When the render includes volumetric shading, like Volume Absorption (sometimes referred to as “fog”), the meshes must be set-up in a certain way for Cycles to interpret the volumes properly.

Intersecting volumes like a beverage glass and liquid must be separate objects to be rendered correctly. When joined into one mesh the renderer doesn’t treat the different volumes separately even though they have different shaders.
And the result is that the volume (depth) of the inner volume is calculated as just the depth on the intersection (the overlap) of the volumes.
In this example the wine can’t be rendered correctly when the glass and liquid meshes are joined.
The wine liquid doesn’t get it’s deep color because the renderer “thinks” it’s very thin.

Untitled-1.jpg

When the meshes are separated the renderer interprets the wines volume correctly and the Volume Absorption shader produces the right color:

Untitled-2

Setting up cavities within a volume like air bubbles, is similar to many other modern ray-tracers. You just have to create inner meshes that have flipped normals facing inwards, so air bubbles within the wine don’t need to have “air” material, they have the same wine shader, but have their faces flipped.

Note that in this case, it’s the other way around from the previous example.
If the bubble meshes are separate from the liquid mesh the renderer doesn’t interpret them as holes in the liquid volume, and produces an incorrect result:

Untitled-3

When the bubble meshes are joined to the liquid mesh, the volume is interpreted correctly:

Untitled-4.jpg

In short:
For these refractive volumetric effects to be rendered correctly in Cycles,
Surfaces of the same material volume must be joined to one mesh, and separated from meshes belonging to different material volumes.
* This may sound trivial, but it’s not. there are rendering systems in which only the surface shader determines volume interpretation and that has advantages like the convenience to aninate bubbles as separate objects from the liquid itself or the ability to join a glass bottle with the liquid into one mesh model.

 

Related:
> Understanding Transparency Render Settings