Cycles Skin Shader - Mhsogskin

by mattheimlich in Surfacing

Full pdf doumentation with color pictures is provided with the download


The mhSOGskin shader is a skin shader based on a combination of the information available in GPU Gems 3 (Chapter 14) and the skin shader outlined in the presentation OSL: The Great and Powerful (from the SIGGRAPH 2013 Course entitled Physically Based Shading in Theory and Practice). It is a skin solution based on real-world measured multi-layer diffusion profiles for skin. It is designed to be a multi-use, set-it-and-forget-it skin solution, and unlike many skin shaders available in other renderers and packages is as simple as possible with very few parameters that need artist tweaking. It requires only one color texture and an optional normal/bump map to get pleasing results, because expression of subdermal/fatty layer coloring is handled entirely within the shader via the diffusion profiles. Recommended uses for the mhSOGskin shader are:

  • “Hero” characters
  • Cases where maximum physical accuracy is required for skin
  • Cases where artists desire minimal setup times.



Many artists will likely be familiar with traditional skin shaders where each layers color, maps, and scattering radi are adjusted individually. They will also likely be familiar with the headaches that come with the endless tweaks necessary for different characters, lighting rigs, scales, and scene surroundings. The Sum of Gaussians approach seeks to eliminate these woes at the cost of some additional render time. It’s a production proven technique (used almost exclusively on Oz the Great and Powerful and The Smurfs) and gives pleasing and accurate, measured scattering for human skin. It relies almost entirely on the info provided by the color texture, and is therefore an excellent shader to use with face scan data. The heart of the shader lies in the 6 layer diffusion profile for human skin. Using these values means that artists don’t have to guess and tweak SSS depths and colors in an attempt to get something that looks correct. All layers are handled in the math of the shader itself. In addition to the subsurface scattering layers, there are additional layers for diffuse (dirt, makeup, etc.) and two glossy lobes representing the oily layers that sit on top of the skin. The equation that composes the skin looks like this: shader = (scattering = bssrdf_gaussian(0.0064) * color( 0.233, 0.455, 0.649); scattering += bssrdf_gaussian(0.0484) * color( 0.1, 0.336, 0.344); scattering += bssrdf_gaussian(0.187) * color( 0.118, 0.198, 0.0); scattering += bssrdf_gaussian(0.567) * color( 0.113, 0.007, 0.007); scattering += bssrdf_gaussian(1.99) * color( 0.358, 0.004, 0.0); scattering += bssrdf_gaussian(7.41) * color( 0.078, 0.0, 0.0);) The diffuse component is then added on top, followed by the two glossy components.


The settings for the mhSOGskin shader are very simple from an artist’s perspective, especially compared to other skin solutions.

Diffuse, Base Color, and Normal

Base Color - The map that will be used for the Sum of Gaussians SSS calculations. Diffuse Color - Allows the user to plug in an additonal map for makeup, dirt, or other materials that rest on top of the skin. Add Diffuse - Controls the amount of diffuse mixed on top of the SSS. Can be controled with a scalar map. Normal Map - Allows the user to plug in a normal map for their object. Automatically applies to all SSS, glossy, diffuse, and Fresnel values. Normal Strength - Controls the strength of the normal mapping. Can be controled with a scalar map.

Glossy and SSS

Sheen/Specular Color - Allows the user to control the color of glossy highlights. Sheen/Specular Roughness - Controls how rough the reflections are for each glossy component. The intention is that the Sheen layer controls tight reflections, while the Specular layer controls broader, blurry reflections, but in practice it doesn’t matter which is which. Sheen/Specular Fresnel - Controls the falloff of reflections based on which parts of the model are facing the camera. SSS Scale Multiplier - Allows the user to change the scale of the shader as a whole to compensate for models and scenes using different world scales.

Sales 60+
Dev Fund Contributor
Published about 10 years ago
Blender Version 2.7x
Render Engine Used Cycles
License Royalty Free
Have questions before purchasing?

Contact the Creator with your questions right now.

Login to Message