You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »


This page provides information about the Subsurface Scattering material in V-Ray for SketchUp.

 

Overview


Subsurface Scattering 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) and is a more or less physically accurate approximation of the sub-surface scattering effect, while still being fast enough to be used in practice.

Subsurface Scattering is a complete material with diffuse and specular components that can be used directly, without the need of a Blend material. Specifically, 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.

 

 

UI Options


The Subsurface Scattering material settings are organized in Basic and Advanced modes. You can switch the mode from the toggle button under the Preview Swatch or globally from the Configuration rollout of the Settings tab.

From the Add Attribute button, you can select additional attributes that can add up to the appearance of the material. For more information, see the Attributes section.

Holding down Ctrl (or Cmd on macOS) while having the Add Attribute menu open, allows selecting multiple entries without closing the dropdown.

The context menu of the Color slot provides options to Copy and Paste, as well as to Reset the color.

A Reset option is provided in the context menu of each Number Slider. You can reset the slider value to the default one.

 

Parameters


Some of the parameters are available only in Advanced mode.

Scale – Additionally scales the subsurface scattering radius. Normally, Subsurface Scattering takes 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.

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

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

Opacity – Specifies how opaque or transparent the material is.

 

 



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 = 6

 

 

Diffuse Layer


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

Diffuse Amount – 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.

 

 

Sub-Surface Layer


Some of the options are available only in Advanced mode.

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 Radius (cm) – Determines the specular color for the material. 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. For all three renders, 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 set to green for all the following renders.

 

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 = 6.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.5 (Backward Scattering)

Phase Function = 0 (Isotropic Scattering)

More light exits object. 

Phase Function = 0 (Isotropic Scattering)

Phase Function = 0.0 (Forward Scattering)
More light is absorbed object. 


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 Raytraced (refractive) mode for single scattering with 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.0

 

 

 

Specular Layer  


Some of the options are available only in Advanced mode.

Reflections – Enables the calculations of reflections. When disabled, only specular highlights are calculated. 

Color – Determines the specular color for the material.

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.

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

Reflection Depth – Specifies the number of reflection bounces for the material.

 


Scattering Options


The options in this rollout allow you to control the method used to calculate the subsurface effect and the quality of the final result. This rollout is available only in Advanced mode.

Multiple Scatter – Specifies the method used to calculate the subsurface scattering effect.

Prepass-based illum map – 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 illum map – 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.
Raytraced – Uses true raytracing inside the volume of the geometry to get the subsurface scattering effect. This method is physically accurate and produces the best results.
None (diffuse approx.) – Does not calculate the multiple scattering effect and uses a diffuse approximation instead.

Single Scatter – Controls how the single scattering component is calculated. For more information, please see the Single Scatter Presets example below.

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 option 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 also produces transparent shadows.  

Scatter GI – Controls whether the material accurately scatters global illumination. When disabled, the GI is calculated using a simple diffuse approximation on top of the subsurface scatterin. When enabled, the GI is included as part of the surface illumination map for multiple scattering. The latter is more accurate especially for highly translucent materials, but may slow down the rendering quite a bit. 

Refraction Depth – Determines the depth of refraction rays when the single scatter parameter is set to Raytraced (solid)

 

 

Prepass Map Options


This rollout option is available when the Multiple Scatter parameter is set to Prepass-based illumination map, Object-based illumination map or None. 

Prepass Mode – This parameter is similar to the Mode parameter of the irradiance map and controls the way V-Ray handles the illumination map for the subsurface scattering.

New Map Every Frame – Calculates a new map for every frame of the animation. 
Save Every Frame
 – Calculates a new map and saves it on the hard drive for every frame of the animation. 
Load Every Frame – Looks for and loads a previously saved illumination map for each frame of the animation. 
Save Map for First Frame – Calculates a new map for the first frame of the animation.
Load Map for First Frame 
– Loads a previously saved illumination map for the first frame of the animation.

Prepass File Name – Specifies a file name for the illumination map to be saved or loaded from.

Prepass Rate – Accelerates the calculation of multiple scattering by precomputing the lighting at different points on the surface of the object and storing them in a structure called an illumination map, which is similar to the irradiance map used to approximate global illumination, and uses the same prepass mechanism built into V-Ray that is also used for e.g. 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 is at the final image resolution; a value of -1 means 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, BRDFSSS2Complex 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. 

Prepass ID – Allows several BRDFSSS2Complex materials to share the same illumination map. This could be useful if different BRDFSSS2Complex materials applied on the same object - either through a Multi/Sub-Object material, or inside a VRayBlendMtl material. If the Prepass ID is 0, then the material computes its own local illumination map. If this is greater than 0, then all materials with the specified ID share the same map.

Auto Calculate Density – When enabled, V-Ray automatically assigns the number of samples to be used for each square unit of surface on the geometry. Enabling this option disables the Samples per unit area parameter.

Samples Per Unit Area – This parameter has effect only when the Auto calculate density check box is disabled. It allows you 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 scene units set up. Increasing this value means that more samples are going to be taken which produces higher quality results at the cost of increased render times.

Samples 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.

Prepass Blur – Controls if the material uses 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  causes 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.

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.

 

 



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 BRDFSSS2Complex 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, whereas the at this rate, when Scatter radius is 1.0 cm, there are still visible artifacts.

 

Prepass = -3
Scatter Radius = 1cm

Prepass = -1
Scatter Radius = 1cm

Prepass = 0
Scatter Radius = 1cm

Prepass = 1 
Scatter Radius = 1cm

Prepass = -3
Scatter Radius = 4cm

Prepass = -1 
Scatter Radius = 4cm

Prepass = 0 
Scatter Radius = 4cm

Prepass = 1
Scatter Radius = 4cm

 

 

 


 

Example: Single Scatter Presets

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.

 

Preset = Simple

Preset = Ray Traced Solid

Preset = Ray Traced Refractive

Preset = Simple

Preset = Ray Traced Solid

Preset = Ray Traced Refractive

 

 

Multipliers


This rollout is available only in Advanced mode.

Mode – Specifies one of the following methods for adjusting textures.

Multiply – Multipliers can be specified to adjust colors and textures.
Blend Amount – Blend amounts can be specified to adjust colors and textures.

Opacity – Controls the intensity of the Opacity value, which determines how opaque or transparent the overall material is.

Overall Color – Controls the intensity of the material's Overall Color.

Diffuse Color – Controls the intensity of the material's diffuse color.

Diffuse Amount – Blends between a texture assigned (if such) and the a color. 

Sub-Surface Color – Controls the intensity of the material's sub-surface color.

Scatter Color – Controls the intensity of the internal scattering color.

Specular Color – Controls the intensity of the material's specular color.

Specular Glossiness – Controls the sharpness intensity of the material's specular highlights, which affects the highlight shape.

 


Binding


Binding – Enables connection/binding between V-Ray and the corresponding base application material.

Color – Enables color binding. Changing the V-Ray material color changes the corresponding base application material color and vice versa.

Texture Mode – Enables texture binding. Changing the V-Ray material texture changes the corresponding base application material texture and vise versa. 

Auto – By default binds the Diffuse texture to the base app material. 
Texture Helper – Allows the use of a helper texture as a base application material map. The same helper is used if the binded texture is a procedural map. This is useful if every time you have to set texture placement for a map that can't be displayed accurately in the base app. 
Custom – Allows the use of a custom texture as base application material map.

Disabling this parameter allows changing the base app material texture without affecting the V-Ray material. 

 

 

Override Control


Can be Overridden – When enabled, the material can be overridden by the Material Override option in the Settings.


Attributes


The attributes from the following expandable menus are available for the Subsurface Scattering material.

 

Bump


This option gives the ability to add bump map and normal map effects when using any material.

Bump/ Normal Mapping – Enables or disables the bump or normal effect.

Mode/Map – Specifies the bump map type.

Bump Map – A height map should be used.
Bump Texture Channel – It is most commonly used for Round Edges effect. Edges texture is used as a bump.
Normal map – RGB map should be used with this option. If a Bitmap texture is slotted its color space must be set to Rendering Space (Linear).

Normal Map Type – This option is available only when the Mode is set to Normal Map. It specifies the space for the Normal Map.

Tangent Space – Uses tangents set to each individual face.
Object Space – Uses each object's local coordinates. 
Screen Space – Uses a flat projection along the camera direction.
World Space – Uses world coordinates.

Amount – Multiplier for the bump/normal map. 

Delta Scale It specifies a scale for sampling the bitmap when Bump Map is selected. The exact value is calculated automatically by V-Ray, but can be changed here.

 


Dispacement


Displacement1 – Enables or disables the displacement effect.

Mode/ Map2 – Specifies the mode in which the displacement is rendered. 

2D Displacement – Bases the displacement on a texture map that is known in advanced. The displaced surface is rendered as a warped height-field based on that texture map. The actual raytracing of the displaced surface is done in texture space and the result is mapped back into 3D space. The advantage of this method is that it preserves all details in the displacement map. However, it requires the object to have valid texture coordinates. You cannot use this method for 3d procedural textures or other textures that use object or world coordinates. The parameter can take any values. 
Normal Displacement – Takes the original surface geometry and subdivides its triangles into smaller sub-triangles, which then are displaced. 

Amount – The amount of displacement. A value of 0.0 means the object appears unchanged. Higher values produce a greater displacement effect. This parameter can also take a negative value, in which case the displacement pushes geometry inside the object. 

Shift – Specifies a constant, which is added to the displacement map values, effectively shifting the displaced surface up and down along the normals. This can be either positive or negative.

Keep continuity – When enabled, tries to produce a connected surface, without splits, when there are faces from different smoothing groups and/or material IDs. Note that using material IDs is not a very good way to combine displacement maps since V-Ray cannot always guarantee the surface continuity. Use other methods (vertex colors, masks etc.) to blend different displacement maps.

Resolution – This option is available when the Mode/Map is 2D Displacement. It determines the resolution of the displacement texture used by V-Ray. If the texture is a bitmap, it is recommended to match this resolution to the size of the bitmap. For procedural 2D maps, the resolution is determined by the desired quality and detail in the displacement. Note that V-Ray also automatically generates a normal map based on the displacement map in order to compensate for details not captured by the actual displaced surface.

View dependent – When enabled, Edge length determines the maximum length of a subtriangle edge in pixels. A value of 1.0 means that the longest edge of each subtriangle is about one pixel long when projected on the screen. When disabled, Edge length is the maximum sub-triangle edge length in world units.

Edge length – Determines the quality of the displacement. Each triangle of the original mesh is subdivided into a number of subtriangles. More subtriangles mean more detail in the displacement, slower rendering times and more RAM usage. Less subtriangles mean less detail, faster rendering and less RAM. The meaning of Edge length depends on the View dependent parameter. The slider's minimum range is set to 0.4. Using lower values is still possible by manually typing them in the input box but it may cause significant render delay.

Max subdivs – Controls the maximum sub-triangles generated from any triangle of the original mesh when the displacement type is Subdivision. The value is in fact the square root of the maximum number of subtriangles. For example, a value of 256 means that at most 256 x 256 = 65536 subtriangles will be generated for any given original triangle. It is not a good idea to keep this value very high. If you need to use higher values, it will be better to tessellate the original mesh itself into smaller triangles instead. The actual subdivisions for a triangle are rounded up to the nearest power of two (this makes it easier to avoid gaps because of different tessellation on neighboring triangles). 


Water Level – Clips the surface geometry in places where the displacement map value is below the specified threshold. This can be used for clip mapping a displacement map value below which geometry will be clipped. 

Level Height – Value below which the geometry is clipped. 

Materials need to be applied to objects (groups/components) to have working displacement. If various materials are applied to different faces of an object, the displacement from the top-level (group/component) material will be used on all of them. Normal Displacement will take into account the texture size of each different face material, while 2D Displacement will ignore them.


 

Raytrace Properties


Visible to Camera – When enabled, makes objects using this material visible to the camera.

Visible to Reflections – When enabled, this option makes objects using this material visible for to Reflection rays.

Visible to Refractions – When enabled, this option makes objects using this material visible for the Refraction rays.

Cast Shadows – When disabled, all objects with this material applied do not cast shadows.

 

 

 

Override


Shadows – The material that is used when a shadow ray hits the surface.

Reflection – The material that is used when a reflection ray hits the surface.

Refraction– The material that is used when a refraction ray hits the surface.

GI – The material that is used when a GI ray hits the surface.

Environment – The texture that will be used instead of the scene environment maps.

 

Material ID


ID Number – Isolates objects as an R/G/B mask in the MultiMatte render elements.

ID Color – Allows you to specify a color to represent this material in the Material ID VFB render element. 

Each material is assigned with an automatically generated ID Color.

 

Notes


  • The BRDFSSS2Complex 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, BRDFSSS2Complex will render as a diffuse one with the progressive path tracing mode of the light cache.
  • You can layer several BRDFSSS2Complex 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 BRDFSSS2Complex 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/ (the link no longer exists)
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.