Industrial Light & Magic uses Lama on all their productions, including on the photoreal skin in The Irishman (© Netflix).
Subsurface scattering is a way to create looks similar to skin, wax, and other surfaces where light penetrates and scatters inside the object. For example, when a candle is lit, the light from the flame also illuminates the wax itself, allowing light to pass through the wax. This is also why you can see sunlight through a person's ears or fingers when held against a flashlight. In subtle ways this is what makes skin appear soft and realistic.
Several models of light scattering are provided so you can choose one that best suits your goals.
Color is typically where textures or patterns are connected to create scattering color for objects. This is where you'd create the color of candle wax or skin variation like freckles or the skin on lips. The RGB values correspond to how far the light travels in that color band. For example, and RGB value of 0.8 0.65 0.5 means Red spreads furthest at 0.8, then Green and finally Blue traveling the least distance in the object scatter result. The below table may be useful.
|Material||Color (Albedo)||Radius (Diffuse Mean Free Path)|
0.846 0.841 0.528
6.96 6.40 1.90
0.314 0.156 0.126
11.61 3.88 1.75
0.321 0.160 0.108
9.44 3.35 1.79
0.976 0.900 0.725
15.03 4.66 2.54
0.164 0.006 0.002
4.76 0.58 0.39
0.830 0.791 0.753
8.51 5.57 3.95
0.764 0.613 0.213
14.27 7.23 2.04
0.815 0.813 0.682
18.42 10.44 3.50
0.436 0.227 0.131
3.67 1.37 0.68
0.623 0.433 0.343
4.82 1.69 1.09
0.908 0.881 0.759
10.90 6.58 2.51
Here is where you supply a signal, either a texture or procedural pattern, to create a bump to the surface to "fake" surface details like small bumps or scratches. This means an artist doesn't have to model these tedious and often repetitious parts of a model.
When light enters a surface, it can travel for a certain distance before it stops (is absorbed or exits). This control specifies how far to travel in scene units. Larger values allow light to go further into a surface and increase the effect. This may also make objects look softer and cause some small modeled detail to be lost as the light scatters beyond those details.
This value modulates RGB values as if they were light paths, and are represented in scene units. For example, a value of <0.5,0.4,0.2> will scatter red light 0.5 scene units. These values are multiplied by the Unit Length attribute and if set too high they will escape the surface giving you unexpected results.
This is a simple multiplier for the above Radius effect. This is useful for a quick tweak to the results, especially if you're driving the Radius with a texture and don't want to repaint. It's also useful when transferring a shaded asset between scenes with different scales.
This changes the technique used to calculate the scattering effect. There are two path-traced versions that are modern choices but may take longer to resolve and an older diffusion model that has often been used for realistic skin. Note that the available parameters are different based on the chosen mode.
- Path-traced Davis (non-exponential) - This method provides a robust light transport solution to produce scattering. This technique works well with thin geometry and edges, replacing times where you might need to combine methods. Note that too-large Radius settings may cause fireflies or bright spots in the resulting render. The Davis or Non-Exponential mode is brighter as light carried further into the object.
- Path-traced exponential - The same as the Davis mode above but light falloff is faster, this may make for a darker result. With the exception of clouds, this model is typical of reality.
- Diffusion Burley - Produces accurate effects while preserving details. Since this is not path-traced, it may appear to resolve more quickly but it is not as well suited for very thin objects and might appear "splotchy". However, it is very common for most other uses. You can find more information on the technical details of this model here
Path-traced Modes Parameters
IOR - Index of Refraction
In some cases, the light that enters an object can be bent backwards and travel to the surface again. If it does so with enough energy, some details may appear to "glow" from the returning light. You can change the IOR to bend these rays until the effect is controlled to your liking.
The IOR for Skin is approximately 1.4.
Light can scatter forward or backwards inside a surface. Using anisotropy, you can cause the light to scatter more strongly forward along the direction of the light ray. This may have the effect of making the object appear more transparent.
This attribute behaves slightly different with different Albedo Inversion Models. For human skin, a value of 0.7 is recommended when using Pixar's Albedo Inversion Model, and a value of 0.2 is recommended for Chiang Albedo Inversion Model.
Bleed (Davis Mode Only)
This can increase the distance light travels, just like the Radius control. However, this control attempts to maintain the finer details while making light scatter further.
Burley Mode Parameter
This considers the surface normals (shape and implied details) while calculating the scattering. This may help preserve lost details.
Setting a value here can control what objects may contribute to one another indirectly as light may go from one surface to another. Sometimes an object creates halos or darkening when they interpenetrate one another and this control specifies what does and does not contribute based on their value.
This value should match the units in your 3D application. For example, Maya units are centimeters, so the unit length should be set to 0.1.
The default is 0.003 which is best for feet.
Sometimes you may have objects embedded in one another, like bones or teeth. If these cause artifacts or something undesirable, setting this to "on" will ignore internal objects.
Albedo Inversion Method
- Pixar - Albedo inversion model used at Pixar which prioritizes the albedo color as a final result.
- Chiang - Albedo inversion model which more closely represents the traditional random walk model published in 2016.