HumanSkin Shader
Overview
The HumanSkin Shader is a specialized shader for rendering skin based surfaces, since skin has a very unique look that cannot be achieved through regular shading. One interesting feature, is that this shader also allows us to "re-create" skin texture color, based on the amount of melanin parameters, so that we are able to get more color variations without making more textures.
On CE3 we also introduced a new skin shader option (Screen space SSS) for a more sofisticated skin subsurface scattering lighting model.

Original "Infinite, 3D Head Scan" model courtesy of Lee Perry-Smith, Infinite Realities. http://www.ir-ltd.net/infinite-3d-head-scan-released
HumanSkin Shader Params
| Shader Params |
Description |
Shader gen option |
| Subsurface multiplier |
Multiplies the intensity of the subsurface scattering. |
Default |
| Rim multiplier |
Multiplies the intensity of rim light on the surface. (is affected by environment map) |
Default |
| Specular multiplier |
Sets specular multiplier. |
Default |
| Light diffusion amount |
Sets light diffusion amount. |
Default |
| Melanin |
Sets level of melanin. |
Default |
| Wrinkles blend |
Sets morph driven wrinkle map blending |
Wrinke blending |
| Wrinkles bump scale |
Sets morph driven wrinkle map intensity. |
Wrinke blending |
| Wrinkles diffuse blend |
Sets morph driven wrinkle map blending with diffuse. |
Wrinke blending |
| Inner layer depth |
Sets how deep or close to the surface the inner layer is. |
Multilayer |
| Outer layer opacity |
Sets how opaque the main diffuse (surface) is shown over the inner layer. |
Multilayer |
| Inner layer anim frequency |
Sets how fast the inner layer animates. (is relative to the depth) |
Multilayer |
| Inner layer anim phase |
Set animation phase |
Multilayer |
| Inner layer diffuse |
Sets the diffuse color of the inner layer. |
Multilayer |
(New) Blur scale |
Sets amount of surface scattering diffusion. |
Screen space SSS |
(New) Self-shadow softening |
Sets geometry self-shadowing (from sun) multiplier. |
Screen space SSS |
Skin Properties
- It's always extremely diffused, also depending on skin type/color, it can be quite reflective specially on darker skin tones.
- Oiliness also affect dramatically skin reflectivity. Also lips area is a bit more reflective by default, and it can become more/less reflective depending also on oiliness/wetness.
- Forehead and nose are most reflective areas due to skin oilyness, on other hand cheaks are not that much reflective. Depending on skin types other areas aswell.
- Depending on skin surface thickness we are able to visualize light passing through surface and exhibiting very interesting detail (and on some cases, details light veins). This property is mostly visible on brighter skin tones - is mostly visible on ears, but also on nose and hands for example.
How to Use the Skin Shader
- The shader tried to replicates all the above properties, and it's relatively simple to use, in particular the new lighting model main contributors is simply subsurface scattering, specular and rim.
- Specular Multiplier: Sets how strong specular is. Note that this should be very subtle visually for brighter skin tones and more stronger for darker tones.
 |
 |
 |
No specular (multiplier 0) |
Strive for always visible but subtle specular |
Too much specular - breaks look |
Notice how subtle specular highlights bring in nice normal map details, and how extremely high specular highlights breaks the look.This values will vary depending on specular map setup.
- Rim multiplier: Sets rim lighting intensity/multiplier. Note that rim lighting on brighter skins tones should be very subtle (like below 0.3) and more visible on darker tones. Check RimLighting for more info.
|
 |
|
| No rim used (rim multiplier 0) |
Subtle but visible gives a nice final touch |
Too much rim kills look |
- Blur amount: Set amount of screen space blurring to use on diffuse lighting.
- Melanin: Set amount of melanin, the higher the more darker it becomes. This allows us to fake different color types, without having to make new textures.
- Subsurface Multiplier: Sets how strong subsurface is. Subsurface term comes partially from the subsurface texture slot, so the darker the texture, the less subsurface you'll see, the brighter the more you'll see - Note that this should be mostly used on ears and nose.
- For best results try using as sharp/noisy as possible normal map (not specular map noise) and having shader doing the magic of smoothing your skin - blury normal maps are forbiden

- There is no perfect material setup, so always make sure to always test your material under diferent lighting conditions and check consistency.
- Examples:
- Start with no sun, just ambient - Does it look flat ? Add a bit of rim. Does mesh look it's brighter than rest of scene, then it means diffuse color is too high.
- Then add sun and so on, just 1 light, multiple lights, play with it - idea is to try to catch any inconsistency on your material setup.
- Strive for always visible but subtle specular and rim. Particularly rim will make your character more interesting when only using ambient light.
- You can mask out specular and rim highlights, by setting the gloss map on the alpha channel of diffuse texture
- Please see the Rim Lighting tutorial for details on rim lighting.
- Please see the Subsurface Scattering tutorial for details on subsurface.
- Please see the Fresnel tutorial for details on fresnel reflection parameters.
Aditional topics
- Self-shadowing softening: A novelty introduced in CE3 - this is an aproximation in screen space of self-shadowing from sun light for macro details which are hard to capture with regular shadow mapping. Skin, eye and hair shader support this feature.
- This option is available when "Screen space SSS" is enabled. It sets multiplier for softening geometry self-shadow from sun. Lower values, mean less visible self-shadowing, bigger value more visible self-shadowing.
- Decal texture slot: Can be used for stamping details into face withouth destroying base diffuse texture - this texture can be also lower resolution. Such details can be for example war camouflage for soldiers, fake shadows or ambient occlusion baking. This feature was used extensively on Crysis1.

- (todo) Wrinkles blending explanation
Final Remarks
- HumanSkin Shader can achieve quite realistic results, if used carefully.
- It depends heavily on input data, that is diffuse/normal/subsurface map should look top-notch to get top-notch results.