Yep, thanks. I understand that, but that’s not really my question. Give what I wrote a try and it should become more obvious.
I can’t relate your explanation to how the code works or how it behaves in 3.6 or 4.0. And I’m not seeing big differences when saving a file in 3.6 and then loading it into 4.0.
In your 3.6 video Subsurface is 1, which means Base Color is not used at all for either diffuse or subsurface scattering.
Note also that the Subsurface methods were renamed. What was “Random Walk” in 3.6 is now “Random Walk (Skin)” in 4.0.
Issue is the same with both random walk (fixed radius) and skin random walk (ior + dynamic radius).
I’ll try and think of a better way to explain it. Until then, basically, in blender 4, you cant have SSS of one colour if the base colour doesn’t contain that colour. In 3.6 you can, because SSS had it’s own base colour which could be set to grey (grey contains equal R,G, and B, so will allow SSS to contain R, G, and B).
Can anyone else explain this better than me?
The 3.6 code is is literally just mixing the colors and using the result. If you want to add a mix node in 4.0 to do the same, you can.
That’s the problem, in 3.6 the base colour SSS mix is calculated by multiplying the subsurfaceColor.
color mixed_ss_base_color = SubsurfaceColor * Subsurface + BaseColor * (1.0 - Subsurface)
Now we don’t have the SubsurfaceColor anymore, it’s multiplying the clamped_base_color * SubsurfaceBSDF, making it so only the colours present in the base colour can appear in SSS.
BSDF = mix(BSDF, clamped_base_color * SubsurfBSDF, subsurface_weight);
It’s possible to get the correct result by using mix shaders to mix the principled with the subsurface scattering node, but it feels like a step backwards having to revert to building SSS with multiple nodes, especially when the SSS options are already there on the principled node.
Would it be better to avoid the limitation altogether by bringing back the separate subsurface colour?
Or perhaps multiplying the subsurf by 0.5 instead of the clamped_base_colour? Relying solely on the radius to dictate the colour of the SSS.
I recently noticed that too, It seems that the amount of RGB on the base color limits the amount of RGB that’s used for the SSS radius. In the screenshot I have the default settings for radius, which should give a mostly red color to the SSS, but since the base color has no red in it then it doesn’t show in the SSS effect.
That’s right, it’s because the final diffuse colour is arrived at by multiplying the base colour by the SSS, so if it’s not in the base colour, it’s lost. It’s physically accurate of course, if a material is blue, then only blue light can pass through it, but it’s better to have some artistic control I’d say.
Physically, if base color is 1.0blue, should only red and green be available to the subsurface?
Yeah, I couldn’t render blue skinned aliens with red blood if I the subsurface radius is affected by the amount of RGB present on the base color
Absolutely. But artistic control is nice.
Physically speaking, blue-skinned aliens don’t exist, so I’m not sure physical correctness has much of a sway here
Ahhhhhhh, I’m wrong! Now I see what you meant @brecht. Mixing the SSS colour into the base colour. I thought you meant mixing a SSS bsdf with a mix shader. Hmm, yes it does produce similar results! I thought that would lead to a more sharper look because of it being drawn directly onto the surface, but no.
Sorry about that
3.6
4.1
Although it does look quite different in fixed radius. I don’t think that’s because of the base colour though:
3.6
4
Same if you want to render very black skin ,or green skin of repitles or elephant grey.Then you have no blood color control like with a seperate absorption color.
I think skin is more like a translucent/diffues medium rough clearcoat layer (with melanin absorption),and unterneath there is volumetric flesh and bloodvenes with its own absorption/scattering.
you should get the identical result to the old principled if you mix the subsurface colour with the base colour using a mix node. My understanding was incorrect, I thought having the sss colour mixed with the base colour would make the sss too apparent on areas where there shouldn’t be scattering, but it doesn’t seem to be the case. I’m not sure how the mixed in SSS colour isn’t showing as strongly in areas of little SSS considering it’s mixed with the base, but it seems to work identically.
You might be right.Scattering is depending of light direction and strength of course.Imaging a complete green repile or alien etc is lit from behind.You expect to have red ears from the blood scatter trough the skin.But at the same time the rest of the object in the lower ambient light has almost no scatter at all,is still green.I have to make some tests.
edit,The Random Walk (Skin) mode works very well for a Reptile SSS.
Rendered with Alpha 4.1.0 AgX medium contrast
Hello
I just made an account for this
We were excited for the new shader to finally bring more industry standard materials and workflows
However we were quite confused now when finally wanting to use IOR for metals to get a realistic outcome
Cinema 4D, Redshift, Arnold and Octane all use IOR values to derive a realistic reflection of metal surfaces. Metal is super important for us in Games but also for our Marketing and presentation effort and is definitely about to become standard in the game industry as well sooner or later.
I can understand the need for metalness and it should be an option, but in no way can a realistic IOR input be skipped, that is a very big mistake.
After trying the new 4.0 Shader we were very dissapointed with the compromise or half measure which has been done, ditching the IOR which has been industry standard for many years in highest quality offline rendering, for a combination of metalness and IOR on diffuse. This is not only very confusing and again going a different way than everyone, but also makes the new 4.0 shader instantly again outdated the second it comes out. Please leave an option for metalness or for a realistic, logical real world IOR values using 3 + 3 channels. Metalness is important but we cannot completely skip on realism on the highest level of rendering in the software.
If you want to make it really great, let someone take half an afternoon and input all sorts of presets in a dropdown from the IOR database for ease of use similar to how C4D does it.
I am leaving some references below:
Thank you for your consideration and effort on the new shader standard but please build it to last, not to be replaced by a new one later to fix this large gap.