This page provides information on the Subsurface Scattering Material.


Page Contents

 

Overview


VRayFastSSS2 is a material that is primarily designed to render translucent materials like skin, marble, etc. The implementation is based on the concept of BSSRDF originally introduced by Jensen et al. (see the references below). It is a more or less physically accurate approximation of the sub-surface scattering effect, while still being fast enough to be used in practice.

VRayFastSSS2 is a complete material with diffuse and specular components that can be used directly, without the need of a Blend Material | VRayBlendMtl material. More exactly, the material is composed of three layers: a specular layer, a diffuse layer, and a sub-surface scattering layer. The sub-surface scattering layer is comprised of single and multiple scattering components. Single scattering occurs when light bounces once inside the material. Multiple scattering results from light bouncing two or more times before leaving the material.

 

 


© Image courtesy of Antone Magdy

 


 

UI Path: ||Material Editor window|| > Material/Map Browser > Materials > V-Ray > VRayFastSSS2

 

General Parameters


 

 

 

preset – Allows the user to choose one of several available preset materials. Most of the presets are based on measured data provided by Jensen et al. in [3]. For more information, see VRayFastSSS2 Presets example below.

scale – Additionally scales the subsurface scattering radius. Normally, VRayFastSSS2 will take the scene units into account when calculating the subsurface scattering effect. However, if the scene was not modeled to scale, this parameter can be used to adjust the effect. It can also be used to modify the effect of the presets, which reset the Scatter radius parameter when loaded, but leave the Scale parameter unchanged. For more information, see the Scale example below.

IOR – Specifies the index of refraction for the material. Most water-based materials like skin have IOR of about 1.3

 



Example: VRayFastSSS2 Presets

 


Skin Brown

 


Skin Pink

 


Skin Yellow

 


Milk [Skim]

 


Milk [Whole]

 


Marble [White]

 


Ketchup

 


Cream

 


Potato

 


Spectralon

 


Water (clear)

 


Orange juice

 

 



Example: Scale

 

This example shows the effect of the Scale parameter. Note how larger values make the object appear more translucent. In its effect, this parameter does essentially the same thing as the Scatter radius parameter, but it can be adjusted independently of the chosen preset. The images are rendered without GI to better show the sub-surface scattering. The Single scatter parameter was set to Raytraced (solid).

 

 


Scale = 1


Scale = 3

 


Scale = 5

 

 

 



 

Diffuse and sub-surface scattering layers



 

 

overall color  – Controls the overall coloration for the material. This color serves as a filter for both the diffuse and the sub-surface component.

diffuse color – Specifies the color of the diffuse portion of the material.

diffuse amount – Specifies the amount for the diffuse component of the material. Note that this value in fact blends between the diffuse and sub-surface layers. When set to 0.0, the material does not have a diffuse component. When set to 1.0, the material has only a diffuse component, without a sub-surface layer. The diffuse layer can be used to simulate dust etc. on the surface.

color mode – Allows the user to determine which method is used to control the sub surface scattering effect.

Sub-surface color + scatter radius – The subsurface effect is controlled with the help of the sub-surface color and scatter color parameters.
Scatter coefficient + fog color – The subsurface effect is controlled with the help of the scatter coefficient and fog color parameters.

sub-surface color – Specifies the general color for the sub-surface portion of the material. For more information, see the Sub Surface Color example below. 

scatter color – Specifies the internal scattering color for the material. Brighter colors cause the material to scatter more light and to appear more translucent; darker colors cause the material to look more diffuse-like. For more information, see the Scatter Color example below. 

scatter coefficient – Specifies the subsurface color, just beneath the surface of the material.

fog color – Specifies the deep inside color of the object.

scatter radius – Controls the amount of light scattering in the material. Smaller values cause the material to scatter less light and to appear more diffuse-like; higher values make the material more translucent. Note that this value is specified always in centimeters (cm); the material will automatically convert it into scene units based on the currently selected system units. For more information, see the Scatter Radius example below. 

phase function – A value between  -1.0 and 1.0 that determines the general way light scatters inside the material. Its effect can be somewhat likened to the difference between diffuse and glossy reflections from a surface, however the phase function controls the reflection and transmittance of a volume. A value of 0.0 means that light scatters uniformly in all directions (isotropic scattering); positive values mean that light scatters predominantly forward in the same direction as it comes from; negative values mean that light scatters mostly backward. Most water-based materials (e.g. skin, milk) exhibit strong forward scattering, while hard materials like marble exhibit backward scattering. This parameter affects most strongly the single scattering component of the material. Positive values reduce the visible effect of single scattering component, while negative values make the single scattering component generally more prominent. For more information, see the Phase Function example  or the Phase Function: Light Source example below. 

 


 

Example: Sub-Surface Color

 

This example and the next demonstrate the effect of and the relation between the Scatter color and the Sub-surface color parameters. Note how changing the Sub-surface color changes the overall appearance of the material, whereas changing the Scatter color only modifies the internal scattering component.

The Scatter color is set to green.

 

 


Sub-surface color
= Red

 


Sub-surface color = Green


Sub-surface color = Blue

 

 



 

Example: Scatter Color

 

The Sub-surface color is kept to green.

 

 


Scatter color = Red

 


Scatter color = Green

 


Scatter color = Blue

 

 

 

 


 

Example: Scatter Radius


This example shows the effect of the Scatter radius parameter. Note that the effect is the same as increasing the Scale parameter, but the difference is that the Scatter radius is modified directly by the different presets.

This set of images is based on the Milk (skimmed) preset.

 

 


Scatter radius = 1.0cm

 


Scatter radius
= 2.0cm

 


Scatter radius = 4.0cm

 

 

 


 

Example: Phase Function


This example shows the effect of the Phase function parameter. This parameter can be likened to the difference between diffuse reflection and glossy reflection on a surface. However, it controls the reflectance and transmittance of a volume. Its effect is quite subtle, and mainly related to the single scattering component of the material.

The red arrow represents a ray of light going through the volume; the black arrows represent possible scattering directions for the ray.

 

 


Phase function
= -0.9 (Backward Scattering)
More light comes out.


Phase function = 0 (Isotropic Scattering)
More light exits the object.



Phase function = 0.5 (Forward Scattering)
More light is absorbed by the object.


 

 

Phase function = -0.5 (Backward Scattering)

 

Phase function = 0 (Isotropic Scattering)

 


Phase function = 0.5 (Forward Scattering)

 

 



Example: Phase Function: Light Source


This example demonstrates the effect of the Phase function parameter when there is a light source inside the volume. The images are based on the Skin (pink) preset with large Scatter radius and Single scatter set to Raytraced (refractive) with Index of refraction (IOR) set to 1.0. Front lighting and Back lighting are disabled for these images; only single scattering is visible. 
Note the volumetric shadows cast by the light inside the volume.


 


Phase function = -0.9

 


Phase function = 0

 


Phase function = 0.5

 

 

 

 


 

Specular Layer Parameters


 

 

 

specular color – Determines the specular color for the material.  

specular amount – Determines the specular amount for the material. Note that there is an automatic Fresnel falloff applied to the specular component, based on the IOR of the material.  

specular glossiness – Determines the glossiness (highlights shape). A value of 1.0 produces sharp reflections, lower values produce more blurred reflections and highlights.  

specular subdivs – Determines the number of samples that will be used to calculate glossy reflections. Lower values render faster, but may produce noise in the glossy reflections. Higher values reduce the noise, but may be slower to calculate. Note that this parameter is available for changing only when Use local subdivs is enabled in the Global DMC Settings.

trace reflections – Enables the calculations of glossy reflections. When off, only highlights will be calculated.  

reflection depth – The number of reflection bounces for the material.

 

 

Multiple scattering Options


The options in this roll out allow you to control the method used to calculate the sub surface effect and the quality of the final result.


 

 

multiple scattering – Controls the method used to calculate the subsurface scattering effect.

Raytraced – True raytracing inside the volume of the geometry is used to get the subsurface scattering effect. This method is physically accurate and produces the best results.
Prepass-based illumination map – This method uses an approach similar to the irradiance map to approximate the sub-surface scattering effect. It requires a prepass and the quality of the final result depends on the prepass rate parameter
Object-based illumination map – This method is similar to the Prepass-based illumination map in that it also creates an illumination map used to approximate the final result. The only difference is the method used for sample placement. Rather than using the resolution of the image as a guide, the samples are placed based on the surface area of the geometry. When this mode is used, the final quality depends on the samples per unit area parameter. 

prepass rate – Accelerates the calculation of multiple scattering by precomputing the lighting at different points on the surface of the object. Calculations are stored in a structure called an illumination map, which is similar to the irradiance map used to approximate global illumination. It uses the same prepass mechanism built into V-Ray that is also used for interpolated glossy reflections/refractions. This parameter determines the resolution at which surface lighting is computed during the prepass phase. A value of 0 means that the prepass will be at the final image resolution; a value of -1 means the it will be at half the image resolution, and so on. For high quality renders it is recommended to set this to 0 or higher, as lower values may cause artifacts or flickering in animations. If the chosen prepass rate is not sufficient to approximate the multiple scattering effect adequately, VRayFastSSS2 will replace it with a simple diffuse term. This can happen, for example, for objects that are very far away from the camera, or if the subsurface scattering effect is very small. This simplification is controlled by the prepass blur parameter. For more information, see the Prepass Rate example below. 

prepass ID – This option allows several VRayFastSSS2 materials to share the same illumination map. This could be useful if you have different VRayFastSSS2 materials applied on the same object - either through a Multi/Sub-Object material, or inside a VRayBlendMtl material. If this value is set to 0, then the material will compute its own local illumination map. If it is greater than 0, then all materials with the specified ID will share the same map.

auto calculate density – When this option is enabled, V-Ray automatically assigns the number of samples to be used for each square unit of surface on the geometry. Enabling this parameter also disables the samples per unit area parameter.

samples per unit area – This parameter has effect only when auto calculate density is disabled. It allows the user to control the number of samples that are going to be taken for each square unit of the geometry surface. The size of one unit is controlled by the 3ds Max scene units set up. Increasing this parameter means that more samples will be taken, which produces higher quality results at the cost of increased render times.

surface offset – To prevent artifacts, each sample is taken a tiny distance away from the actual surface in the direction of the normal. This parameter controls that offset.

preview samples – When enabled, V-Ray renders an image that displays the samples distribution along the surface of the geometry. It can be used for debugging artifacts much like the Show samples parameter of the Irradiance Map.

max distance – Each sample is represented by a circle in the final image. This parameter allows the user to specify the radius of the sample.

background color – Specifies the color of the geometry where there are no samples present.

sample color – Specifies the color of the samples.

 



Example: Prepass Rate


This example shows the effect of the Prepass rate parameter. To better show the effect, the Prepass blur parameter is set to 0.0 for these images, so that VRayFastSSS2 does not replace the sub-surface component with diffuse shading when there are not enough samples. Note how low values of the Prepass rate reduce render times but produce blocky artifacts in the image. Also note that more translucent objects can do with lower Prepass rate values, since the lighting is blurred anyways. In the examples below, when Scatter radius is 4.0 cm, the image looks fine even with Prepass rate of -1. However, when Scatter radius is 1.0 cm with a Prepass rate of -1, there are still visible artifacts.

 


Scatter radius = 1cm
Prepass rate = -3

 


Scatter radius = 1cm
Prepass rate = -1

 


Scatter radius = 1cm
Prepass rate = 0

 


Scatter radius = 1cm
Prepass rate = 1

 


Scatter radius = 4cm
Prepass rate = -3

 


Scatter radius = 4cm
Prepass rate = -1

 


Scatter radius = 4cm
Prepass rate = 0

 


Scatter radius = 4cm
Prepass rate = 1

 

 

 


 

Options


 



single scatter – Controls how the single scattering component is calculated.

None – No single scattering component is calculated.
Simple – The single scattering component is approximated from the surface lighting. This option is useful for relatively opaque materials like skin, where light penetration is normally limited.
Raytraced (solid) – The single scattering component is accurately calculated by sampling the volume inside the object. Only the volume is raytraced; no refraction rays on the other side of the object are traced. This is useful for highly translucent materials like marble or milk, which at the same time are relatively opaque.
Raytraced (refractive) – Similar to the Raytraced (solid) mode, but refraction rays are traced as well. This option is useful for transparent materials like water or glass. In this mode, the material will also produce transparent shadows.

single scatter subdivs – Determines the number of samples to take when evaluating the single scattering component when the single scatter mode is set to Raytraced (solid) or Raytraced (refractive). For more information, see the Single Scatter Mode example below. Note that this parameter is available for changing only when Use local subdivs is enabled in the Global DMC Settings.

refraction depth – Determines the depth of refraction rays when the single scatter parameter is set to Raytraced (refractive) mode.

front lighting – Enables the multiple scattering component for light that falls on the same side of the object as the camera.

back lighting – Enables the multiple scattering component for light that falls on the opposite side of the object as the camera. If the material is relatively opaque, turning this off will speed up the rendering.

scatter gi – Controls whether the material will accurately scatter global illumination. When disabled, the global illumination is calculated using a simple diffuse approximation on top of the sub-surface scattering. When enabled, the global illumination is included as part of the surface illumination map for multiple scattering. This is more accurate, especially for highly translucent materials, but may slow down the rendering quite a bit.

interpolation accuracy – Controls the quality of the approximation of the multiple scattering effect when the type is Prepass-based illumination map or Object-based illumination map. Larger values produce more accurate results but are slower to render. Lower values render faster, but too low values may produce blocky artifacts on the surface.

prepass blur – Controls if the material will use a simplified diffuse version of the multiple scattering when the prepass rate for the direct lighting map is too low to adequately approximate it. A value of  0.0  will cause the material to always use the illumination map. However, for objects that are far away from the camera, this may lead to artifacts or flickering in animations. Larger values control the minimum required samples from the illumination map in order to use it for approximating multiple scattering.

cutoff threshold – Specifies a threshold below which specular reflections will not be traced. V-Ray tries to estimate the contribution of specular reflections to the image, and if it is below this threshold, the effect is not computed. Do not set this to 0.0 as it may cause excessively long render times in some cases.

prepass mode – Allows the user to select the way the illumination map (prepass) is (re)used.

Single frame – When enabled, V-Ray will calculate a new illumination map for each rendering.
Single frame (autosave) – When enabled, V-Ray will calculate a new illumination map and save it in a file specified in the prepass fileName.
From file – When enabled, V-Ray is not going to calculate a new illumination map. Instead it will use the map specified in the prepass fileName to render the image.

prepass fileName – Specifies the file name of the illumination map to be saved in or read from.

 


 

Example: Single Scatter Mode


This example shows the effect of the Single scatter mode parameter.

For relatively opaque materials, the different Single scatter modes produce quite similar results (except for render times). In the following set of images, the Scatter radius is set to 1.0 cm.

In the second set of images, the Scatter radius is set to 50.0 cm. In this case, the material is quite transparent, and the difference between the different Single scatter modes is apparent. Note also the transparent shadows with the Raytraced (refractive) mode.

 

 


Single scatter = Simple

 


Single scatter = Raytraced (solid)

 


Single scatter = Raytraced (refractive)

 

 

 

Single scatter = Simple

 

Single scatter = Raytraced (solid)

 

Single scatter = Raytraced (refractive)

 

 


 


 

Notes


  • When using either Raytraced (solid) or Raytraced (refractive) mode for the Single scatter parameter, you need to use VRayShadows for standard lights in order to get the correct results.

  • The VRayFastSSS2 material computes sub-surface scattering only during the final image rendering. During other GI calculations phases (e.g. light cache or photon mapping), the material is calculated as a diffuse one.
  • For the reason explained above, VRayFastSSS2 will render as a diffuse one with the progressive path tracing mode of the light cache.
  •   You can layer several VRayFastSSS2 materials using a VRayBlendMtl material in order to recreate more complex sub-surface scattering effects. In this case, any raytraced single scattering will only be calculated for the base material, but multiple scattering, reflections etc will work correctly for any layer. It might be helpful to use the Prepass ID parameter to make the materials share the same illumination map so that some of the calculations are reused.
     

 


Here is a list of links and references used when building the  VRayFastSSS2  material.

[1] H. C. Hege, T. Hollerer, and D. Stalling, Volume Rendering: Mathematical Models and Algorithmic aspects
An online version can be found at http://www.cs.ucsb.edu/~holl/publications.html
Defines the basic quantities involved in volumetric rendering and derives the volumetric and surface rendering equations.
 

[2] T. Farrell, M. Patterson, and B. Wilson, A Diffusion Theory Model of Spatially Resolved, Steady-state Diffuse Reflectance for the Noninvasive Determination of Tissue Optical Properties in vivo , Med. Phys. 19(4), Jul/Aug 1992
Describes an application of the diffusion theory to the simulation of sub-surface scattering; derives the base formulas for the dipole approximation used by Jensen et al. (see below).

[3] H. Jensen, S. Marschner, M. Levoy, and P. Hanrahan, A Practical Model for Subsurface Light Transport, SIGGRAPH'01: Computer Graphics Proceedings, pp. 511-518
An online version of this paper can be found at http://www-graphics.stanford.edu/papers/bssrdf/
Introduces the concept of BSSRDF and describes a practial method for calculating sub-surface scattering based on the dipole approximation derived by Farrell et al. (see above).

[4] H. Jensen and J. Buhler, A Rapid Hierarchical Rendering Technique for Translucent Materials, SIGGRAPH'02: Computer Graphics Proceedings, pp. 576-581
An online version of this paper can be found at http://graphics.ucsd.edu/~henrik/papers/fast_bssrdf/
Introduces the idea of decoupling the calculations of surface illumination and the sub-surface scattering effect in a two-pass method; describes a fast hierarchical approach for evaluating subsurface scattering and proposes a reparametrization of the BSSRDF parameters for easier user adjustment.

[5] C. Donner and H. Jensen, Light Diffusion in Multi-Layered Translucent Materials, SIGGRAPH'05: ACM SIGGRAPH 2005 Papers, pp. 1032-1039
An online version of this paper can be found at http://graphics.ucsd.edu/papers/layered/
Provides a concise description of the original BSSRDF solution method presented by Jensen et al; extends the model to multi-layered materials and thin slabs using multipole approximation.