Cycles Subsurface Scattering tips

[Split from a separate thread, this discussion contains useful info about Cycles SSS]

[In reply to a preceding post:] Octane is a great, versatile renderer. It’s the only spectral renderer for Blender (LuxCore only has spectral calculations for dispersion, but is an RGB renderer), and there will be an add-on version of Octane for Blender soon (no more need for the separate Octane builds).

When working with Blender I’m often switching between Octane and the new Cycles (X). Cycles has the best SSS, at least in terms of control and quick satisfactory results, so for organic renderings I prefer Cycles. I’m also anticipating a return to Mac, and Cycles has recently introduced Metal support in the latest 3.1 alpha builds, supported by Apple engineers, while Octane has a Metal-powered Octane X version, but that isn’t available for Blender macOS yet.

4 Likes

This is great to know. I stopped using Octane and went back to Arnold because the separate build thing was a bit annoying.

Octane has a very advanced SSS method that is more in line with current gen. I’m not sure if Cycles is still using the old random walk algorithm, or do you know if they’ve modernised it?

2 Likes

Yes, Cycles has a new, improved Random Walk method and added SSS IOR and SSS Anisotropy, which is currently only available in Arnold. See here (hey, who created that sculpt?! :laughing:)

3 Likes

Great to know! I haven’t really been keeping up. Is there finally a scale setting or scatter depth/distance? I remember I used to have to set up a node group to scale the SSS effect.

Oh, I think it was someone that used to be a Zbrush buddy, but has since left the fold…again… :laughing:

3 Likes

The dedicated Cycles SSS shader node has a Scale value, which is probably the same as the Subsurface value in the Principled shader, being a multiplier of the Subsurface Radius. An important thing to remember is that the Subsurface Radius is indicated in Blender’s default meter units, so if you want SSS to penetrate about 3 centimeters into a surface, set your Subsurface Radius values to around 0.03. This will also get rid of noise faster, because there’s less volume to calculate SSS for.

1 Like

Yeah, I was setting it up like Arnold, so I was plugging an RGB node into the radius, set at R 1.0 G 0.35 B 0.2 - this best simulates human skin according to Arnold docs, because red light penetrates deepest into human skin, followed by green, and then blue. So, if you’re setting all 3 to the same setting you lose the realism.

I have no comment… :sunglasses:

2 Likes

You can use an RGB node into the radius, just remember that the R, G and B values are actually the distance of SSS penetration measured in meters. In that aspect, always make sure your models have realistic dimensions, but you undoubtedly already do that.

2 Likes

The Subsurface value slider 0-1 is the blend between diffuse and SSS, so should always be set to 1(unless the object has mud/makeup/etc which would be masked with diffuse)

Yes, this is the thing, all other SSS shaders I’ve worked with always have a scale factor value so you don’t have to set the actual physical scale of the mesh in the scene. Blender is the only renderer(out of 10 or so renderers I’ve used) that doesn’t have this option.

Although in newer SSS solutions we find a depth/distance setting, which makes more sense than scale.

1 Like

This was the setup I was using to get that scale setting. Apparently this setting existed before the Principled shader.

2 Likes

Sorry, I’ve just seen this. Is this node the same as the principled shader/same results or is it legacy?

The scale value on the dedicated SSS node is the same as the Subsurface value on the Principled node, just a mix between SSS and Diffuse. So the nodegroup to have an actual scale slider is still needed.

3 Likes

I hope you know that there’s an Arnold for Blender addon available? No need for separate build.

1 Like

Quoting the Principled shader docs SSS section:

“Subsurface
Mix between diffuse and subsurface scattering. Rather than being a simple mix between Diffuse and Subsurface Scattering, it acts as a multiplier for the Subsurface Radius.”

So the Radius values are the most important (color) values to determine the SSS look at first. Then you can exaggerate or reduce the effect using the Subsurface value (or the Scale value in the dedicated SSS node).

2 Likes

I meant Octane separate build. I use Arnold in Maya. :+1:

1 Like

Yeah but in practice it doesn’t work like that, scale should be it’s own separate value, independent from the mix between diffuse and sss, at least for realistic shaders.
Right now if you want a low SSS value and change just that one slider you also will be adding more diffuse to the mix and that’s not the intended result sometimes.

2 Likes

Nope, that’s an unofficial community build at best, it’s not on the official website.

There used to be some controversy around the addon though and I’m not sure it even renders nowadays.

From my experiments just now, i think of Octane’s SSS as a volumetric SSS.
I think of the Density as the absorption depth, if set to say 1. it wont penetrate far, if set to 100 it will penetrate deep.
The albedo i think of as the main color of my SSS. And the Radius as a kind of tint as in which color will be refracted back out to the eye the most.
As for using them for my example on porcelain i mix a specular material with my base current glossy or diffuse material.
I think as the Bias as the Antistrophy or the direction the rays will go either more toward the camera or away…

This is all just the way i think of it in relation to Blenders system, i don’t know if its correct or not.



Update:
Theres a better method.
Instead use a universal shader, set the transmission to white so that it let light in and check fake shadows so it lets more light in not just caustics.
The albedo sort of controls how much sss you want, if you have it set to black its full SSS.

Then use the scattering medium node into the medium.
Plug an rgb spectrum texture to the absorption tex.
The rgb color then controls the main color of the SSS.
If you set the density too low it will act like a colored glass, if you set it to something like 20 it will look more like wax or skin.
scattering color if set to white will scatter the SSS fully(so red will get mixed so much it will turn milky white) if you set it to black it will not do any scattering and only have absorption which i guess is physically incorrect.
I have the scattering set to nearly white for a skin or wax type look.

2 Likes

:+1:

Also, try switching the material’s Transmission Type from Specular to Diffuse for a softer, less dielectric SSS.

1 Like