---
title: "Subsurface Scattering"
canonical: "https://documentation.chaos.com/space/VRHINO/116129978/Subsurface%20Scattering"
format: markdown
---
This page provides information about the Subsurface Scattering material in V-Ray for Rhino.


## **Overview**

---



## **UI Paths**

---

||V-Ray Asset Editor|| > **Materials **(right-click) > **Subsurface Scattering**

||V-Ray Asset Editor|| > **Create Asset **(left-click) > **Materials** >** Subsurface Scattering**

 

 

## **UI Options**

---



## **Parameters**

---


> Macro (anchor)



---

** **

### **Example: Scale**

This example shows the effect of the **Scale **parameter. Note how larger values make the object appear more translucent. The images are rendered without GI to better show the sub-surface scattering. The **Single scatter parameter** was set to Raytraced (solid).



### **Diffuse Layer**

---


### **Sub-Surface Layer**

---



> Macro (anchor)



---


### **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.



> Macro (anchor)



---


### **Example: Scatter Color**

The **Sub-surface color** is set to green for all the following renders.


> Macro (anchor)



---


### **Example: Scatter Radius**

This example shows the effect of the **Scatter radius** parameter.



> Macro (anchor)



---


### **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.



> Macro (anchor)



---

** **

### **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 have a large **Scatter radius**, **Raytraced (refractive)** mode for **Single scattering**, and** 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.



### **Specular Layer**  

---


### **Scattering Options**  


---


> Macro (anchor)



---


### **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.



### **Multipliers**

---



## **Viewport Display**

---



## **Override Control**

---

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



## **Attributes**

---

<span style="color: #272727">The Attributes available for the </span><span style="color: #272727">**Subsurface Scattering **</span><span style="color: #272727">material are as follows.</span>


<details>
<summary>Bump</summary>

### **Bump**

---

**Mode/Map** – Specifies the bump map type.

**Bump Map **– A height map should be used.  
**Bump Texture Channel** – Some V-Ray textures have a special bump channel output that can be used here. It is most commonly used for Round Edges effect. Edges texture is used as a bump.  
**Normal Map** – RGB normal map should be used with this option. Note that in most cases the normal map bitmap color space should be set to Linear to ensure correct results.

**Amount** – Multiplier for the bump/normal map.

**Delta Scale** – Specifies a scale for sampling the bitmap when using bump mapping. The exact value is calculated automatically by V-Ray, but can be called here.


![SketchUp2023_VRay6.2_Material_Attributes_Bump](media://58aefd78-3936-4999-a515-fef1bf588f33)
</details>

<details>
<summary>Outline</summary>

### **Outline**

---

The Outline attribute is available only when the engine is set to CPU. It is currently not supported for GPU.

**Line Color** – Specifies the color of the outlines.

**Opacity **– Specifies the opacity of the outlines.

**Normal Threshold **– Determines when lines will be created for parts of the same object with varying surface normals (e.g. at the inside edges of a box). A value of 0.0 means that only 90 degrees or larger angles generate internal lines. Higher values mean that smoother transitions between face normals can also generate a line. Setting this value to 1.0 fills curved objects completely.

**Overlap Threshold **– Determines when outlines will be created for overlapping parts of the one and the same object. Lower values reduce the internal overlapping lines, while higher values produce more overlapping lines. Setting this value to 1.0 fills curved objects completely.

**Width **– Specifies the width of the outlines.

---

**Inner Line Control **– Enables a separate control for the inner edges.

**Inner Line Color** – Specifies the color of the inner lines

**Inner Width** – Specifies the width of the inner lines.

> ℹ️ Some of the global parameters have an effect on all materials with the Outline attribute. These parameters are Width Type, Trace Bias, No Inner Edges, Visible in Secondary, and Compensate EV.

![SketchUp2023_VRay6.2_Material_Attributes_Outline](media://7452e890-fdba-4f36-a0b7-d9975be5043c)
</details>

<details>
<summary>Displacement</summary>

### **Displacement**

---

> ℹ️ This is a legacy attribute that will be removed in the future. Consider using the [geometry displacement modifier](https://docs-chaos.atlassian.net/wiki/spaces/VRHINO/pages/116130540) instead. It can be created as a geometry asset in the Outliner and can be applied to objects in the project. Note that the displacement effect will no longer appear in the Preview Swatch.

**Displacement** – Enables or disables the displacement effect.

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

**2D Displacement **– Bases the displacement on a texture map that is known in advance. 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 value.   
**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 surface continuity. Use other methods (vertex colors, masks, etc.) to blend different displacement maps.

---


**Resolution **– (Available when the Mode/Map is 2D Displacement) 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.


![SketchUp2023_VRay6.2_Material_Attributes_Displacement](media://17e2b655-c791-463c-ba5a-f2acf914fe31)
</details>

<details>
<summary>Raytrace Properties</summary>

### **Raytrace Properties**

---

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

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

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

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

![SketchUp2023_VRay6.2_Material_Attributes_Raytrace](media://9e918554-e61b-49c4-83d7-24eb0c6b75dd)
</details>

<details>
<summary>Override</summary>

### **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.

![SketchUp2023_VRay6.2_Material_Attributes_Override](media://99daffb5-bea1-49fb-ac39-e1b74857b59b)
</details>

<details>
<summary>Material ID</summary>

### **Material ID**

---

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

**ID Color** – Specifies a color to represent this material in the Material ID VFB render element.

> ℹ️ Each material is assigned with an automatically generated ID Color.

![SketchUp2023_VRay6.2_Material_Attributes_Material_ID](media://f065395c-6e9b-40d9-97f8-f22606290c19)
</details>



## **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 Blend 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.
- <span style="color: #000000">The option Multiple Scatter is now legacy. Materials created with versions prior to V-Ray 5, have their Multiple Scatter migrated to Raytraced.</span>
- The **2D mapping (landscape)**  method only supports one UV mapping channel.



## **References**

---

Here is a list of references used when building the BRDFSSS2Complex material.


- 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](https://sites.cs.ucsb.edu/~holl/pubs/hege-1993-vrm.pdf). * *  
*Defines the basic quantities involved in volumetric rendering and derives the volumetric and surface rendering equations. *
- 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 [https://pubmed.ncbi.nlm.nih.gov/1518476/](https://pubmed.ncbi.nlm.nih.gov/1518476/).  
*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).*
- > Macro (anchor)

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/](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).*
- 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/](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.*
- 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/~henrik/papers/layered/layered.pdf](http://graphics.ucsd.edu/~henrik/papers/layered/layered.pdf).  
*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.*