/Separable-Subsurface-Scattering-Demo

Implementation of the Separable Subsurface Scattering technique from http://www.iryoku.com/separable-sss/ in C++ and Vulkan 1.0

Primary LanguageC++

Separable Subsurface Scattering Demo

Implementation of the Separable Subsurface Scattering technique from http://www.iryoku.com/separable-sss/ in C++ and Vulkan 1.0. Additionally this demo features physically-based shading, image-based lighting, shadow mapping and temporal anti-aliasing.

Controls

  • Right click + mouse rotates the camera.
  • Mouse scroll wheel zooms in and out.
  • A GUI window offers additional options such as toggling SSS or TAA, changing window resolution or adjusting the light position.

Requirements

  • Vulkan 1.0
  • 256 MB RAM
  • 1 GB video memory

How to build

The project comes as a Visual Studio 2017 solution and already includes all dependencies. The Application can be build as both x86 and x64.

Screenshots

Here are some screenshots showcasing the difference that the subsurface scattering effect makes:

SSS off SSS on
Subsurface Scattering Off 0 Subsurface Scattering On 0
Subsurface Scattering Off 2 Subsurface Scattering On 2
Subsurface Scattering Off 1 Subsurface Scattering On 1

Credits