Procedural Skin Material

Lots of little stuff in this one.

First off, if you haven’t, check out this video on a super simple setup for the SSS node in Cycles. It’s a little long winded on the setup, so you can skip to about 7:30 for the actual nodework.

For my part, it’s a lot less complicated thinking about the node set up the way pauljs does in his video. The official stance is that the RGB colors in the ‘Radius’ setting are presented in that order from top to bottom. Presumably, the ‘1’ means full color and less than that is some percentage of that color coming through. In most cases, your main color is going to line up with your SSS color. Even with skin, the SSS color isn’t going to be terribly far from your base color for the model. Assuming that is the case (and even if not you’ll find some useful stuff in here) we’re going to make Suzanne pink.

lightSetup

So here’s the basic setup. Black body point light at 4800K / 100 Strength and .1 Size. Panel sized x3 rotated to 90 on the X and emitting at 5. Camera set at -4 Y (640X480) from full front. Suzanne is smooth shaded and has a subsurf on rendering 2 subs. (For the eyes, I duplicated the eye mesh, shurnk it along the individual origins to .95 and then set up two other materials, which I’ll talk about in a minute.)

Doing this with a skin tone of (.991,.440,.238) gives the following:

SkinMat(DiffOnly)_082614

Diffuse Only

BasicMatSetup

SkinMat(DiffNGloss)_082614

Diffuse and Gloss (settings to the right)

SkinMat(NoBump)_082614

Diffuse, Gloss and Subsurf (super low)

Couple of things to note here. First, the color (mentioned above) is input into both the Diffuse and the Subsurf, it also goes somewhere else, which I’ll explain next. The gloss is striaght up white. The order of the mix is important, because we want the information to fall together correctly. The Subsurf, then whatever isn’t covered by that take the Gloss, and whatever is left take the Diffuse. I’ve also tweaked the mix settings to look nice. I set the SSS up for Gausian (it’s faster) and notice that the Scale of the subsurf is super tiny. Here’s what it looks like when full 1:

SkinMat(Full1SSS)_082614

so you decide how supple you want that skin. I don’t have a good method for this, other than just toying with it. [I decided on a different number by the time I was done with this post than the one I started with. (0.25)]

 

 

So where does the color go?
Here:
SSSRadius

This is the really interesting part from the YouTube video above. Why toy with these setting independently if you don’t need to. Take your input color, flush it through a Separate RGB node, multiply each of them by a value, and then combine them back to make the Radius. Simple. The great thing about this is that you can pull the value and color out to input nodes for a group later, and if you want, you can separate the RGB value multipliers (so if you happen to want a blue blooded pink thing, you can make that happen.) Separating and recombining the values might seem like a chore, but it is necessary for the proper outcome of this method, beyond giving you the control options.

The image is still a bit flat at this point, but that might be all you want with it. Notice, you can stick a texture in rather than just a color for that input slot. Very useful if you are creating skin with a texture to go with it. But lets say you want more realism, without painting a whole bunch of textures in. Here you go, procedural bumps:

SkinMat(bumpClose)_082614Bumps

Notice the add node, this is important as it will alter the behavior of the textures interacting. Also, the conversion to B&W is important, I tried it with the factor and it didn’t come out looking near as natural. This bump gets thrown into all three shaders.

Final product:
SkinMat(Final)_082614

Right now, I’m toying with a way to make a voronoi cell texture (slightly disrupted by a wave texture) put some veins in the SSS color. It would be really neat to see that kind of thing work out. Some other considerations: run a dirty vertex and place the input from that as a modifier for the bump maps to create some wrinkles (dirty vert hits the crevasses where wrinkles would normally be), use a voronoi input to the vector of a noise shader to create fingerprint like structures,  grouping and saving the node groups for use with other projects and as varied inputs.

Happy Blending.

Oh, I almost forgot the eyes. This is very basically how I model all my eyes. Grab the exterior portion already on Suzanne and duplicate, then scale along individual origins to 0.95. Next grab all the stuff that’s in the front of the eye, and pull it back. Like this (interior on left, exterior on right)

 EyeMeshes 

For the materials, the interior gets this treatment:
EyeInterior

notice you can replace the white with a texture, and I recommend bump mapping your veins, it’ll really add to the realism.

then the exterior gets this tear treatment:

Tears

Boom. That’s it.

Blend available here: Skinned Suzanne.

Share your results with me, I’d like to see this material put to use!

 

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s