Background

In the real world, a material's shininess is determined by microscopic grooves and bumps on its surface that scatter the incoming light over wider or smaller angles, towards the viewer. The rougher the surface is, the wider angle the incident light will be reflected out, causing more blurrier highlights and reflections. Previously in Blender's raytracer this process has been simulated for perfectly glossy mirror-like (or clear glass-like) surfaces only, but there's now the capability to simulate less glossy surfaces, for blurry reflections or refractions.

Rather than taking a single reflection sample for fully glossy surfaces, blurry raytracing works by blending multiple samples, distributed in a cone shape around the outward ray direction. The more samples that are taken, the smoother looking the result will be, at the expense of extra render time.

The cone of samples are generated using an adaptive QMC Halton sequence, distributed according to a Phong scattering formula. Although the glossy reflection/reflection gloss amount has a similar meaning to the specular shading 'hardness' setting, for practicality, there are two extra 'Gloss' sliders, weighted for more precision at the sharper end of the scale, that you can tweak independently for better control over the look. For more information on adaptive QMC sampling, and optimisation, check the QMC Sampling release notes page.

Note:

  • To prevent render times increasing exponentially, glossy reflection/refraction is currently only calculated on the first raytrace bounce. So, for example, you won't see blurry reflections on a metal object that's behind some refracting glass. This is a known issue, and although it won't cause problems for most purposes, a smarter way of reducing samples for deeper ray bounces is planned.


Blurred reflection
Blurred refraction

Reflection rays
Refraction rays

Settings

Gloss

  • The shininess of the surface. A glossiness of 1.0 (default) is fully shiny (mirror-like for reflection, clear glass-like for refraction), and will not do multi-sampled raytracing. Lowering the slider will cause the sample cone to become wider and wider, giving a blurrier and blurrier result. Note that with less glossy surfaces, because the samples are spread wider, you'll need more samples to keep a smooth result.

Samples

  • The number of samples to average to arrive at the pixel's final colour. More samples will give a smoother result, but since each sample involves the overhead of tracing and shading a new ray intersection, the greater the number of samples, the slower the render speed.

Thresh

  • The threshold for adaptive sampling. Sampling is skipped when no more samples are deemed necessary, by checking the statistical variance of the samples so far for that pixel against the threshold. Raising the threshold will make the adaptive sampler skip more often, however the reflections could become noisier. See the QMC sampling page for more detailed information.



Left to right: Reflecting spheres with glossiness of 0.9, 0.8, and 0.6
Left to right: Refracting spheres with glossiness of 0.9, 0.8, and 0.6

Aniso

  • The reflection's anisotropy - the amount it is stretched along the tangent direction

If the material Tangent V option is on, for tangent (anisotropic) specular and diffuse shading, Blender automatically renders blurry reflections as anisotropic reflections. Rather than blurring in a circular shape, the blur is stretched along a line, aligned to the direction of the tangent vectors.

When Tangent V is switched on, the Aniso slider controls the strength of this anisotropic reflection, with a range of 1.0 (default) being fully anisotropic and 0.0 being fully circular, as is when tangent shading on the material is switched off. Anisotropic raytraced reflection uses the same tangent vectors as for tangent shading, so you can modify the angle and layout the same way, with the auto-generated tangents, or based on the mesh's UV co-ordinates.


Anisotropic reflection with brushed metal texture (ProMotion Studios)
Left to right: Anisotropic reflecting spheres with anisotropy of 0.0, 0.75, and 1.0
Various shapes and UV unwraps, with anisotropic reflection

Max Dist

  • Limits reflections to a certain distance. This works for both glossy and non-glossy reflections, and can have multiple uses - to prevent pulling far away objects into reflections or to fake a fresnel effect, but the main reason for limiting the reflection distance is that is speeds up reflection raytracing considerably.

    With the distance limit, rather than sending rays throughout the entire scene to look for intersecting objects, the renderer can just look within a smaller surrounding area, which takes a lot less time to calculate. This makes even more of a difference when using blurry reflections, since many more ray samples are being taken.

 

Ray end fade-out: Fade to Sky / Material Color

  • Rather than just harshly clipping the reflections at the desired distance, when using a distance limit, the reflections will fade out linearly to either the sky colour, or the existing material colour underneath the reflection. Generally, fading to sky colour is better for outdoor scenes and material colour is better for indoor scenes.
Left to right: Reflecting floor boards, with Max Dist of 1.0, 5.0 and 15.0