My project for the day has been porting the Arnold skin shader to Cycles now that we have SSS. I've made good progress, but there are still speed up options that I need to figure out how to properly implement. Mostly some math relating to light paths that's holding me up, but I should be able to work through it soon.
UPDATE: Version 2 (link below) - Adjusted some weighting after Brecht fixed difference between prog/non-prog rendering. Reflections are now clamped at 1 provided that you don't enter a weight higher than that. Should help with noise a bit as well.
2.1 - Correct Oren-Nayar values
http://www.file-upload.net/download-...ked.blend.html - Obsolete skin shader in here. Grab the one below and append if you'd like to render the head.
Just download, unpack, and render!
http://pasteall.org/blend/20547 - Version 2.1
A smaller file for those only interested in the material without the head/textures/displacements/etc.
Let's jump right in!
The color of your diffuse material. For skin you will usually be plugging in your skin color map here.
For plugging in a bump/normal map for your diffuse component.
Diffuse weights: .01, .25, .5, .75, 1.0
Change to affect the overall amount your diffuse component is expressed in the final material. Used to balance diffuse/SSS contribution.
SSS Overall Weight:
SSS Weights: 0, .25, .5, .75, 1 (Diffuse Weight 1)
Overall weight of all three SSS layers. Can plug in black and white map here to control which areas are affected most by scattering.
Shallow Scatter Color:
Controls the color of the tissue just under the skin surface. Default is #FFE8C4.
Shallow Scatter Weight:
Controls contribution of shallow SSS to final material.
Shallow Scatter Radius:
Controls scatter distance of RGB for scattering events. Recommended to keep all 3 the same in this setup.
Mid Scatter setting and Deep Scatter settings follow the same parameters as Shallow.
Primary Reflection Color:
Controls the reflected color of your primary reflection/specular component.
Primary Reflection Weight:
Controls contribution of primary reflection to final material.
Primary Reflection Roughness:
Controls the roughness of your primary reflections.
Primary Reflection Bump:
Allows you to connect a bump/normal map to your primary bump component.
Primary Reflection Fresnel:
Control the facing falloff of your reflection component.
Secondary Reflection settings are the same as primary. It's recommended that you use primary for tighter reflections and secondary for broader reflections.
Global SSS Radius Multiplier:
Overall scales: 0.1, .5, 1, 1.5, 2.0
Allows you to control the global scale of your SSS components. Use to change the overall depth of your SSS.
Options to only sample only the SSS material in GI and Glossy rays. Should save a good amount of time and help clear up noise without changing the look any appreciable amount.
Not sure if it's my material or SSS in general, but I get very different results between progressive and non-progressive rendering. I've been using non-prog for all of my tests.
Special thanks to Lukas Tonne for helping me with figuring out how to clamp SSS/Diffuse contributions. Special thanks to Thomas Dinges for helping me get my build environments up and running to actually get a copy of Blender working with SSS!
Keep an eye out for updates to the shader as I go.
Please leave me any comments or questions you might have, I'll answer them ASAP.