HumanSkin Shader (Pre-3.6)

Overview

The HumanSkin shader is a specialized shader for rendering skin surfaces as skin shading cannot be accurately reproduced using regular lighting models.

HumanSkin Shader Params

Shader Params

Description

Shader gen option

Displacement bias

See Tessellation and Displacement for more information.

Displacement Mapping

Displacement height scale

See Tessellation and Displacement for more information.

Displacement Mapping

Fresnel Bias

See Illum Shader for more information.

All

Fresnel power

See Illum Shader for more information.

All

Fresnel Scale

See Illum Shader for more information.

All

Indirect bounce color

See Illum Shader for more information.

All

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 depth

Sets how deep or close to the surface the inner layer is.

Multilayer

Inner layer diffuse

Sets the diffuse color of the inner layer.

Multilayer

Melanin

Sets level of melanin.

Default

Oil spec glossiness

Glossiness of secondary "oily" specular highlight.

Default

Oil spec multiplier

Multiplies the intensity of the secondary "oily" specular highlight.

Default

Outer layer opacity

Sets how opaque the main diffuse (surface) is shown over the inner layer.

Multilayer

Rim multiplier

Multiplies the intensity of rim light on the surface.

Default

Scattering radius

Radius in which light travels through the surface of skin before exiting.

Default

Tessellation face cull

See Tessellation and Displacement for more information.

Displacement Mapping

Tessellation factor

See Tessellation and Displacement for more information.

Displacement Mapping

Tessellation factor max

See Tessellation and Displacement for more information.

Displacement Mapping

Tessellation factor min

See Tessellation and Displacement for more information.

Displacement Mapping

Basic information and limitations

  • The new shader uses screen-space SSS by default. The old wrap method has been deprecated (doesn't work with deferred lighting).
    • Multilayer option has been modified to accommodate this change.
  • Self shadowing has been removed due to artist feedback.
  • Due to current hardware limitations, the subsurface scattering has a limited number of samples and thus will create artifacts with high scattering values.
    • There is unfortunately no way around this issue aside from tweaking light conditions to hide the artifacts, or avoid using high scattering values.
    • The best practice is to hover around the default value and ensure that your character never gets too close to the screen.
  • There is no translucency in thin areas such as the nose or ears because of deferred lighting limitations.

Using the HumanSkin shader

Subsurface Scattering

Skin's main look is the result of subsurface scattering (light bouncing inside the surface, exiting in a different location than where it entered). Without subsurface scattering skin appears hard like concrete. It's the most important visual cue for the look of skin, therefore great care has been taken into faithfully simulating the effect. See Subsurface Scattering for more detail.

Scattering Radius

Defines the radius of scattering light inside the surface. The lower the value, the less scattering occurs and the more "concrete" the surface looks. Higher values provide a larger sense of translucency but too high can make the surface look like Wax or cause artifacts (this is because of a limited number of samples due to hardware constraints).

No scattering, looks like concrete (radius 0)

Mild scattering, very fleshy (radius 2)

High scattering, kills look (radius 8)

Rim Lighting

Rim Lighting simulates light reflection at sharp angles, meaning that it enhances visualization of silhouette shapes, separating surface (making it more visible) from the background. See Rim Lighting for more detail.

Rim Multiplier

Sets rim lighting intensity/multiplier. Note that rim lighting on brighter skins tones should be very subtle and more visible on darker tones.

No rim, flat

Subtle rim, interesting look

Strong rim, kills look

Oil specular

Oil specular simulates the specularity caused by a thin layer of oil over the skin.

Oil Spec Glossiness

Glossiness/sharpness of the oil specular highlight. Higher values give a more wet look but too high can break the effect.

No oil gloss, looks ok

Mild oil gloss, gives more interesting look
(particularly in ambient lighting)

Strong oil gloss, too sharp, kills look

Oil Spec Multiplier

Controls the intensity of the oil specular highlight.

No oil spec, a bit dull

Mild oil spec, gives nice look

Strong oil spec, too strong, kills look

Glossiness

Glossiness

Is controllable via a gloss map stored in the specular map alpha channel. It is highly recommended that all major characters have a gloss map (at least for their face) as it gives variation to the specularity of the skin.

No glossiness, too diffuse

Gloss map with glossiness 200
(for females, lips could be nice and glossy)

No gloss map with glossiness 200,
way too strong, kills look

Decal overlay

Textures placed in the Decal texture slot will be overlayed over the diffuse texture. For example, this can be used for war camouflage for soldiers, dirt, fake shadows or ambient occlusion.

Dirt added using decal texture

Multilayer

This option allows two textures to be blended together. In this particular example we used it to simulate the jelly-like flesh of these aliens in Crysis 3. The secondary texture (the inner layer) needs to be plugged into the Opacity texture slot in order for this feature to work. There are also parameters to animate the inner layer texture but those are very straight forward and require no extra setup.

Outer Layer Opacity

0 Opacity - Only base
(Diffuse texture slot) is visible

0.5 Opacity - A 50/50 mix between
the two textures

1.0 Opacity - Only the inner layer
(Opacity texture slot) is visible

Inner Layer Depth

No depth - Secondary texture
appears directly underneath

Depth 15 - Veins of texture appear deeper

Depth 32 - Refraction is so heavy the inner
layer is highly distorted and hard to read

Baked Translucency

This option simulates light absorption (sub-surface scattering) when multilayer is enabled. Channels will open up for SubSurface and Custom texture slots. SubSurface is the channel which allows you to define a custom emission map (if you do not want one a simple grey or white texture can be used) and the Custom texture slot allows you to define your own translucency map.

Translucency Emissive

No Emission - No translucency taking place

Emission 5 - Edges clearly highlighted
but there is too much emission overall

Emission 10 - Very strong

Translucency Strength

No Strength

Strength 1.5 - Realistic amount of
depth is being simulated

Strength 10 - Looks blown out
Inner layer is only visible

Translucency Surface Reflex

Reflex Strength 0 - Only direct light
sources simulate translucency

Reflex Strength 0.2 - Light is evenly
distributed to inner layer so it remains visible

Reflex Strength 10 - Way too much
light being distributed