As an advanced rendering effect, I have implemented subsurface scattering in my raytracer. Subsurface scattering is a light transport mechanism where light travels inside a surface in the scene and it becomes scattered inside the medium then leaves the surface. This phenomena can be observed in the nature as you can see in the figures below.


Subsurface scattering phenomena

Subsurface scattering phenomena

Subsurface scattering phenomena

Subsurface scattering phenomena


Here you can find some results from my renderer using subsurface scattering:

Diffuse rendering of a cube model with 256 samples

Figure-1: Diffuse rendering of a cube model with 256 samples

Rendering of a cube model with subsurface scattering enabled, 256 samples

Figure-2: Rendering of a cube model with subsurface scattering enabled, 256 samples per pixel

Rendering of a cube model with subsurface scattering enabled, 256 samples. Note that camera is facing to back of the cube model in previous figure

Figure-3: Rendering of a cube model with subsurface scattering enabled, 256 samples per pixel. Note that camera is facing to back of the cube model in previous figure

Rendering of dragon model, 1024 samples per pixel.

Figure-3: Rendering of dragon model, 1024 samples per pixel.

Rendering of dragon model, 1024 samples per pixel and subsurface scattering is enabled.

Figure-4: Rendering of dragon model, 1024 samples per pixel and subsurface scattering is enabled.

Rendering of dragon model, 1024 samples per pixel and subsurface scattering is enabled. Note that camera is facing to back of the dragon model in previous figure.

Figure-5: Rendering of dragon model, 1024 samples per pixel and subsurface scattering is enabled. Note that camera is facing to back of the dragon model in previous figure.

as

Figure-6: Rendering of previous scene with Beer's Law is also enabled in subsurface scattering calculations.


References