Subsurface scattering Model of light transport in translucent materials Marble, jade, milk, skin Light penetrates material and exits at different point Not simple reflection Light absorbed the further it travels into material
BRDF BRDF - Bidirectional Reflectance Distribution Function Defines how light is reflected on an opaque surface Assumes light enters and leaves material at same position
BSSRDF BSSRDF - Bidirectional Sub-surface Scattering Reflectance Distibution Function Can describe light transport between any two rays that hit a surface
Comparison – BRDF vs BSSRDF
BSSRDF – How to calculate? Outgoing radiance equation: Integrating over incoming directions and area gives:
BSSRDF function BSSRDF function: Comprised of diffuse and single scattering components
BSSRDF – Diffuse scattering term Fresnel terms – light refraction from entering material and then exiting Diffuse sub-surface reflectance function
BSSRDF – Diffuse sub-surface reflectance function
BSSRDF – Single scattering Occurs when refracted incoming and outgoing rays intersect
BSSRDF – Single scattering term Total outgoing radiance due to single scattering:
BSSRDF – Implementation Can be implemented in a ray tracer Similar to sampling area light source in distributed ray tracing For each ray-object intersection integrate light over area of surface Sample single scattering term along refracted outgoing ray Sample diffuse scattering term around outgoing position
Fast BSSRDF Can speed up calculation by using optimising BSSRDF Contribution of single scattering term is small for materials with high albedo, so can be ignored Therefore only need to calculate diffuse term
Fast BSSRDF - Implementation Two passes Sampling irradiance Evaluating diffusion approximation
Fast BSSRDF – Sampling Irradiance Create sample points on mesh Distance between sample points equal to average distance at which light is scattered within material For each point store location, area, and irradiance
Fast BSSRDF – Evaluating Diffusion Approximation Sum the contribution of all irradiance samples for each outgoing point Contribution from irradiance samples decreases according to distance from output We can cluster distant samples Implement using a hierarchical structure – eg. octree, indexed by point and area
Fast BSSRDF – Output
References Jensen, Marschner, Levoy and Hanrahan: “A Practical Model for Subsurface Light Transport” Jensen and Buhler: “A Rapid Hierarchical Rendering Technique for Translucent Materials”