UE4 Skin Shader and Virtual Character Rendering

Some insights from Infinite-Realities on building realistic skin inside the Epic’s real-time renderer.

Infinite-Realities has published a long post on shading and rendering realistic characters in UE4. The real-time renderer can give really good realistic results, but there are some limitations. Let’s take a look at some of the highlights of the analysis.

First of all, the studio took scanned data for a model to play with inside Unreal Engine 4.

Offline renderers have multiple GI bounce, fine and deep subsurface scattering, true ray traced shadows (soft penumbra) and ray traced reflections and UE4 present no such features, so there is a number of borders here:

When trying to render in real-time applications there are many obstacles to over come when trying to match against offline renderers like Vray or Arnold. We have to sacrifice a certain amount of realism but real-time renderers like UE4 and Unity are getting better and better.

We need some further guidance from Epic on shader integration and possible core updates. As we have found some limitations with the skin shader, which can hinder realism, some of Jorge’s features are missing. We hope to make a case that might inspire Epic further

Arnold uses The GGX distribution which is new to Arnold 4.2.12 and generally matches real-world materials better than the default Beckmann distribution. With access to 2x GGX specular controls. Epic uses only 1 GGX specular control.

Limitations

Infinite-Realities has formed a list of possible obstacles with the real-time renderer:

1) Not having access to 2x specular lobes (one white, tight and fine and one blue, large and rough) which is very important for skin shading on micro details
2) No built in back scattering (deep SSS) and multi coloured SSS, for thinner areas of skin like in the ears. For these changes to happen, UE4 needs a core update to unlock these features?
3) Normal maps are also locked at 4K resolution. We can get in 8K colour but not 8K normal maps, which are essential for details. No access to 16k micro normal application.
4) We currently cannot get the Eye shader iris depth to work and the reflections cause darkening errors when compared to default lit or subsurface.  Either user error (see node network) or bug
5) We have a wet blur layer (forward hack) but have no access to screen space shadows (light leak at corners of eyes) and no way to control depth blur getting larger at further distances from subject

Make sure to read the full article on building realistic skin inside the Epic’s engine. The studio is ready for an open dialogue, so make sure to leave some comments if you have any to work out some solution. 

Published 02 February 2017
Arti Sergeev
Business Head