Principled shader Subsurf color input may still be needed
I was thinking about it and what if you had a character wearing warpaint, or had dirt or grease smeared on their face. You would need a color input for subsurface that would be different from the color map for the things riding on the surface.
In the Avatar movies, the Navi have a blue surface color map and a pink color under the surface. If I'm understanding the new system correctly, An attempt to make a navi character in Blender would result in something that looked like a blue candle. We have the radius control, but that's based on the input color, right?
Any number of alien, supernatural or NPR results that may require separating the surface from the interior would require access to that input.
Maybe there is something that I'm not understanding. But keeping access to the subsurface color input seems like an option that wasn't hurting anybody, but its absence could lead to results that are impossible to obtain in Blender.
12 Comments
You can change subsurface colour with the subsurface radius. It's not currently as obvious that's what it does as there are a couple of ways you can use it that I don't particularly understand yet. For now,
You can also use the radius as distance and attach a texture (SSS map maybe?) to the scale. That might require experimenting with.
In all I think it is probably more versatile now. Just going to need people playing with it to see what it can be done with it.
Thanks. The radius input has a purple socket, which means it isn't meant to take an image directly, I think.
What would be REALLY more versatile is if they kept the subsurface color as an available input and leave the user with the choice.
Thanks for the good advice.
AFAIK the old subsurface color was just multiplied with the base color. So you can just use a mix node with your base color input set to multiply to get the result.
Thank you for the explanation, but if that solves it I'm not following. Using the Navi characters from Avatar as an example, if I multiplied blue and pink and plugged that into the base color, I would end up with purple skin and that color would be copied as the subsurface color. And we'd end up with a purple candle. Not blue on the surface and pink underneath.
I don't know much about what is going on under the hood, but I've done a bunch of characters and creatures and being able to control the subsurface color separate from the surface color comes up often.
Thanks for the comment.
what you might want is a mix shader node and a mask to mix a skin shader without the warpaint with a warpaint-only shader. and indeed , the previous implementation of the subsurface color was similar to just a color mix
It doesnt solve navi characters in blender because that wasnt what you were aking for lmao. You were asking to bring back subsurface color parameter and I explained how you can recreate it.
I appreciate the explanation, I just don't understand what you're describing. Are you saying before the base color goes into the base color socket, multiply in the subsurface color to it with a mix node? Or is that result supposed to plug in somewhere else? Any trick that would expose the subsurface color parameter should make it possible to do navi effect I used as an original example. Thanks for talking about it with me.
So the fix to their improved shader is to now use two shaders rather than one? I supposed that would work for some of the use cases, but it seems like we're moving in the wrong direction.
This isn't question for you, but I wonder if there was there something super wrong with including that subsurface color input? Did it break some physics rule or did they just assume nobody needed it anymore?
Thank you for the comment.
it's cleaner, in general, which I think is the reasoning. BUT: please also note the 'radius' input. try plugging a texture in there and see if that does what you need. I think it was a wise choice to make that more prominent.
I agree making radius more prominent was a good call, but it has a purple input, which means it requires a vector input, not an image. I don't think plugging a color into it would do anything.
I can't use 3.5 and beyond without buying a new computer, so I can't test any of this myself. But I stay up to date with changes and this lack of subsurface color input could be a deal breaker. I'd hate to not be able to use such a powerful program for such a small omission.
I would hope they didn't get rid of it just for a cleaner look, since it would be hidden in the new drop down expandable category of the new Principled shader anyway.
Thanks for your help.
Have you tried plugging an image into the radius in your version of Blender? Ignore the purple for a moment and just try it.
The blender manual has this to say about subsurface radius: "Average distance that light scatters below the surface. Higher radius gives a softer appearance, as light bleeds into shadows and through the object. The scattering distance is specified separately for the RGB channels, to render materials such as skin where red light scatters deeper. The X, Y and Z values are mapped to the R, G and B values, respectively."
So under the hood it is working on the RGB channels. You can work in the 0-1 range for direct use of colours, or go beyond it for scatter distance for each channel, hence why it's purple rather than yellow.
In 4.0 I can plug images into radius, scale and weight, with different effects depending on the values of the other two sockets. Still playing about with it to see what else can be done.
Been looking more into it on devtalk and (very slowly) beginning to understand things. The subsurface colour is really just mixed into the base colour, with the subsurface slider acting as both mix factor and strength scale. With these decoupled you can mix between diffuse and subsurface with weight, determine depth scale in units, and tint with the radius a number of ways, which is probably why they deemed colour redundant. But it'll take people actually using the new methods to determine if there is a use case only having the colour socket solves. So don't talk about deal breakers just yet. :)
Thanks so much for poking around under the hood. I can't test it myself without getting a new computer, so I appreciate everyone's contribution to solving the riddle.
You're right, we'll have to just wait and see what happens.