SSS Refract

This node basically does multiple scattering refractions. When with romboRefract (or Standard Material) we do engage Scatter in the Refract (transmission) rollout we are doing instead volumetric single scattering. Multiple scattering is slower but more expressive. We can't really render a resin statuette like this one below with single scattering.

Let's see its main parameters and how it works.

We have two ways to scatter refraction rays.

The first one is based on internal multiple scattering and belongs entirely on the Absorption rollout.. meaning, refraction rays will first enter the surface volume and from there they will start getting absorbed and scattered. How much absorbed ? As much as our Radius and Scale params. What colors will be absorbed ? Those not being part of the absorbtion Color param.. ie. if you select a pure red then greens and blues are absorbed and won't showing up in the render.. effectively gving a red color to our models 🙂

Let's put in clear that if we need big scattering in the medium we better go for volumetric single scattering with romboRefract because dealing with that here, - it is an order of magnitude slower. But. If our medium has some mild scattering properties then multiple scattering is more expressive. Just take really care that the Scattering param is very sensible and we should just input very low values to start seeing scattering from within the medium. Eventually a practical solution is to use Arnold OIDN denoiser that does a great job smoothing remaining SSS variance.

Let's see how we can easily setup our medium with absorption.

First we need to be sure that the Radius and Scale are such that the rays will have a chance to get to the other side of the model at least for what regards its thin parts. Without passing through the object we won't get any refraction effect and then it's better to use plain subsurface scattering.

Below we use respectively a scale of 2.0 and 5.0 with a Scattering of 0.01.

Here we're keeping the same scale of 5.0 while increasing the scattering value to 0.05. We see we're getting to a point of scattering density which is better approached with volumetric single scattering. 

Here we are still keeping the scale to 5.0 while we lowered down the scattering to 0.005.

It easy to see that we use the medium absorption scattering to model things like turbid water or diluted juices where the characterization of their appearances stays more on the volume than on the surface. Below some other examples on how the medium changes while increasing the scattering param.  

The second way to have scattering is by altering the refraction rays at the surface boundary, ie. not while in the medium but while hitting the surface.

To do this we'll deal with the parameters that belong to the Transmission rollout. Let's first set the absorption scattering param back to 0.0. Then the IOR param controls how much the rays will bend once entering the surface volume. If we keep both absorption scattering and transmission roughness to 0 we'll have a pure refraction shader.

Once we're happy with our IOR param we can start using the Roughness parameter. This param will make our surface looking more vitreous. Here the roughness param is not sensible as the absorption scattering param as it behaves almost like a transmission roughness and it's also way faster.

Below we're using respectively a roughness value of 0.1, 0.3, 0.7.

We see that by altering the surface scattering properties (as opposed to the medium scattering properties) we better approach pure dieletric materials. The nice thing is that we can use both absorption scattering and transmission roughness (as we do in romboRefract with single scattering and transmission). So we can approach a big range of materials with these simple parameters.

There's one left param that we called I'm Super Rough. Here we're using a trick that in short is to kinda invert the IOR once random walked back to the surface.. pretending there's been a boundary between the isotropic opaque core and the transparent anisotropic stuff.. this puts both scattering stuff we saw till now to good use.. practically it's like our models are full of something turbid and vitreous while they are coated with resin or syntetic materials like rough plastic or natural materials. We can model resin dudes like the entry model or highly vitreous stuff like rough glass or even opaline.

Please note the super nice 'caustics' we get here.. we can't get those with the romboRefract (or Standard Material) and single scattering. 

By fine tuning our params we can go from appearances like opaline to synthetic rough stuff like industrial plastics, resins etc.


Keywords :

refract, refraction, glass, volumetric, single scatter, scattering, multiple scattering, arnold, arnoldrender, arnoldrenderer, shader, material, reflect, reflection, microfacet, arnold shaders, arnold download, arnold materials, arnold renderer materials


Leave a Reply