PxrSkin
PxrSkin
The PxrSkin shader utilizes the advances in physically-based subsurface scattering combined with efficient multiple importance sampling techniques for path tracing efficiency and low noise. The subsurface scattering uses a close approximation to the ground-truth solution as determined by Monte-Carlo simulation. It includes both single- and multi-scattering. The advantage of this BSSRDF model over the more common dipole diffusion BSSRDF model is that it better represents high frequency details, whereas the dipole model often suffers from an overly smooth "waxy" look. The skin color defaults to smooth caucasian skin color but is most often specified by a texture map. The subsurface scattering is divided into three components: near, mid, and far. It is common to assign a different color for each component, for example for skin one would choose pale yellowish pink for near-range color, pink for mid-range color, and deep red for far-range color. In addition to subsurface scattering, the PxrSkin shader also has specular/glossy reflection to represent surface reflection from skin oils and sweat. The image at right is an example of a head rendered with the PxrSkin shader (thanks to Lee Perry-Smith for making this data set freely available). This material is deprecated and succeeded by PxrLMSubsurface. |
PxrSkin is not just for skin. It is a good basis for any material that has similar basic characteristics, e.g. wax, marble, onyx, or jade.
NOTE:
There is also a simpler subsurface scattering shader called PxrSubsurface that has a different parameterization of the subsurface scattering parameters and does not have specular/glossy reflection from the surface.
Parameters
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
continuationRays Trace subsurface continuation rays. When 1 (on), subsurface scattering can be scattering from across surface creases and also from other nearby objects. But internal blockers (such as bone within a finger) are ignored. When 0 (off), internal blockers are taken into account but there is no subsurface scattering across surface creases or from other objects. Turning subsurface continuation rays on can increase noise or render time. The default is 0 (off). |
The figure below illustrates how the subsurface color is computed depending on the distance between the surface entry and exit points (i.e. subsurface scattering distance). First the distance is used to evaluate the bssrdf profile (the gray-scale curve in the figure); this gives the intensity of the subsurface scattering. Then that intensity is multiplied by a color that is a mix of the near, mid, and far color - determined by the scattering distance as shown by the yellow, orange, and red areas in the figure.
Note that nearColor is multiplied by nearWeight, and similar for mid and far; this makes it simple to brighten or darken an input color texture.
Also note that the total subsurface color is guaranteed to be a mix of nearColor, midColor, and farColor. For example, if all three colors have a brighter red component than blue and green, the total subsurface color will always be more red than blue and green, no matter what the scattering lengths are or what the surface geometry is.