The right way to mix multiple Random Walk SSS Shaders?

Hi there, I stumbled upon an unnormal behavior of the new Random Walk Subsurface Scattering Method:
When mixing between two Random Walk Nodes, the result gets darkened with the most darkening happening at a Mix Factor of 0.5. This even happens when mixing between two identical SSS Nodes (two red SSS Shaders mixed -> dark red). My assumption is, that this happens because it’s using real volume scattering and because of this we have to use an Add Shader instead (similar to when working with Volume Scatter).
Is this the correct way of doing it?

Energy conservation seems not being broken this way like it would be when adding two other Shaders on top of each other.



here I controlled the “Mix Factor” with the scatter color value of the two shaders, although this seems a bit counter intuitive.
Any Ideas on how to do this in a more elegant way?

For Reference: The same Setup with Christensen-Burley. As you can see, there appears to be no darkening at a Mix Factor of 0.5 here.


Could also try your luck with an add, and then a mix with the other shader and a socket left empty feeding into that. Sometimes when the additive property is needed because direct mixing doesn’t seem to work right, then that approach works. (Because then you’re adding a proportion of what’s being mixed or nothing.)

Haven’t done that with this, but sometimes it comes in handy with emission nodes for lighting effects. Still the idea seems like it could apply.

– edit –
I realize this isn’t quite ideal because 100% on the mix only goes up to the halfway point. I think this has to do with the function of mixing though. It’s a difference between an either/or, and/or, or exclusive/or (xor). There’s some aspect of that in boolean logic you’d have to read about that may help you figure out what’s going on. On the upside it’s very likely that a functional node group can be made to achieve the type of mixing mode you need that Cycles nodes don’t provide by default.

Tried that - sadly results in the same darkening problem. I also have the impression, that somehow energy conservation still doesn’t really work with the Add Shader Method (when adding more shaders, it looks wrong) So I’m a bit lost here. Maybe it’s just a bug that will be fixed.

Adding a mix shouldn’t do that, mixing an add is another thing… But who knows? :spin:

I came up with this alternate mix node group though. It adds one way to get up to the 50-50 (adding both at 100% internal to the group), then flip-flops the adding order half way to get to continue transitioning fully to the other shader.

AdditiveMix.blend (119 KB)

Hopefully that may work out.

1 Like

Thats a clever way of doing it. Thanks a lot :yes: