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

 

Realistic Spotlights for Blender & Cycles

Software:
Blender 2.79 | Cycles Renderer

There’s currently no built-in support for IES light sources in Blender & Cycles.
We already know that Blender 2.8 will have the feature built into it (which is great news!), and there’s an addon that provides the functionality, but I wasn’t satisfied with it’s workflow, not being integrated well into Cycles.
So I decided to develop a custom Cycles shader (node group) that will provide realistic IES like spotlights in a convenient customizable way.

The Shader I developed is called CG-Lion Spotlight Presets Pack 1.0 and is available for purchase on Blender Market.
It doesn’t load external IES files, but instead has a pre-configured library of 20 spotlights shapes, and also provides features that are not available in IES lighting like tweaking the spotlight beam focus, adding a chromatic dolor dispersion effect, and producing a correctly bright surface at the light source.

CGL_Spotlight_Presets_Pack_1.0_Previews.jpg


Related:

Customizable Photo-realistic Car-paint shader for Cycles
Complex Fresnel texture for Cycles
Optimized Architectural Glazing Shader for Cycles
Procedural Wood 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

Cycles Tangent node & Anisotropic reflection

Software:
Blender 2.82

The Cycles Tangent node defines a Tangent-Space for a mesh by either using one of the object’s local axes (see image A) or by using an available UV layout.
This can be useful when designing an Anisotropic reflection shader like in the case of brushed, machined or lathed metals.
A grey-scale texture can be connected to the Rotation input of the shader to define changes in the Anisotropic direction on the surface (see image B).

Examples:

A. In this example the Tangent node is set to ‘Radial’ Direction mode, in which a object axis is chosen as the radial axis of the Anisotropic direction:
Annotation 2020-05-07 132452

B. In this example a Noise texture’s Factor output is connected to the Anisotropic shader’s Rotation input to create an irregular Anisotropic (metal brushing finish) direction:

Annotation 2020-05-07 133126

 

Related:

  1. Adding a texture to an Area Light
  2. Using the normal’s blue channel to create top-side effects
  3. Nested transparencies

Basic Toon Shading in Blender & Cycles

Software:
Blender 2.79

  1. Set a Toon BSDF as your model’s material.
  2. Activate the Freestyle option in the Render Settings, and set Line Thickness,
    * More line style settings are found in the Render Layers settings.
    * Freestyle lines are only rendered in the final render (F12) and are not rendered in the Cycles viewport interactive render mode.

Minimal Toon setup:Untitled-2.jpg

A more controllable setup:
2 Toon BSDF’s, one for color shading and one for highlights added together, and a Background shader override to control shaded area darkness:
Untitled-1

Cycles Light (Shadow) Sampling

Software:
Blender 2.79

By default, in Path Tracing Integrator Mode, Cycles traces one ray randomly between all lights (per each camera – AA sample).
So if some lights in the scene are more important than others this will cause inefficient light sampling.
* Especially if there are a few important lights and many unimportant ones.

Light sampling can be set per light by switching the Integrator Mode to Branched Path Tracing, making sure Sample All Direct Lights is checked, and the setting the number of samples per light in the light parameters.
* The option to set the number of samples at the light parameters is only available in Branched Path Tracing Mode.

Untitled-2

In the example below there are 3 lights.
The light on the right has 64 a samples per AA sample, while the 2 other lights have just 1 sample.

Untitled-1.jpg

More on Cycles sampling:
https://docs.blender.org/manual/en/dev/render/cycles/settings/scene/render/integrator.html#sampling

Animating the sample settings in Cycles

Software:
Blender 2.79

A quick Cycles rendering tip:

There are situations in which we need to render an animation with changing lighting complexity, and as a result, parts of the animation need more samples than others to be effectively rendered.
For example when the camera starts it’s movement on the outside in an exterior scene, and moves into an interior space like house or a cave, or a vehicle, in many cases, the exterior part of the animation can be rendered with much less samples than the interior part.

In such cases, rendering the whole animation with the higher sample settings will demand unneeded render time in the simpler parts of the animation.

One possible solution would be to simply render the animation in two separated render jobs with different sampling settings, one for the less demanding part and another for the more complex part and than append the two parts in an editing / compositing software. but that requires more work on the shot, more management etc.

A simple solution is to animate the sample settings in Cycles.
Make tests at different times along the animation to determine how many samples are needed at each part, and key-frame the settings accordingly.

AnimateSamples

HDRI / Environment Sampling in Blender

Software:
Blender 2.79

Improve HDRI sampling by increasing the MIS (Multiple Importance Sampling) map resolution in World > Settings

2018-01-19

When the Sampling method is ‘Branched Path Tracing’ the environment sampling isn’t found in the general Sampling Settings but in World > Settings.

2018-01-19

* The Sampling Method can be chosen in the Render > Sampling settings

 

Blender – quickly clearing multi-materials

Software:
Blender 2.79

Select one or more objects with multiple materials and another object with just one material as the active object, that will be the Active Object.
In the material list open the v menu and choose ‘Copy Material to Others’
This will copy the material settings to all selected objects.

* Link materials command will not achieve the result, it will still keep unneeded materials on selected objects

Untitled-1.jpg

 

Enable the built in addon: ‘Material Utils Specials’

Untitled-2

This addon will add three extra material operations to the material V menu:

Clean Material Slots:
Deletes unused material from the object

Remove Active Slot:
Same as deleting a material by pressing –

Remove all Slots:
Delete all materials assigned to the object

Untitled-2