BSSRDF • BSSRDF • Bidirectional surface scattering reflectance distribution function • Radiance theory • BRDF
Subsurface scattering • Lighting approximations based on only surface reflection fails for: • Translucent materials • Marble, cloth, paper, skin, milk, cheese, bread, meat, fruits, plants, fish, water, snow, etc. • Heck, darn near everything
What is subsurface transport? Skin Flesh Bone
Radiance Theory • Outgoing radiance equation BSSRDF x0 – Surface point we are computing forw0 – View direction for point x0Fi(xi,wi) – Incident flux on point xi from direction wiFlux = rate of energy per unit time. If xi=x0, we get BRDF – Bidirectional reflectance distribution function (surface only!)
Solving for radiance x0 – Surface point we are computing forw0 – View direction for point x0Li(xi,wi) – Incident flux on point xi from direction wiFlux = rate of energy per unit time. Okay, how do we solve for this, assuming we have an equation for S?
Simplifying assumption • We’ll only model first order events • Single reflections • We’ll cheat and add a “term” to simulate all other events • “Each scattering event blurs the light distribution, and as a result the light distribution tends toward uniformity as the number of scattering events increases”
The equation That’s all there is to it, we can all go home now…
The equation Diffusion term Single scattering term
Strange new worlds • Light hitting a surface and diffusing below the surface is simulated with two light sources • A positive (real) light source below the surface • A negative (virtual) light source above the surface D = Diffusion constant
Parameters for this • Effective transport coefficient • Absorption coefficient (material property) • Reduced scattering coefficient (material property)
Big ugly equation Albedo Fresnel transmittance
Single Scattering Term Exercise for the viewer: Determine what S(1) is from the above equations. Note the change of variable. (ouch) Phase function – Distribution that describes the scattering of light to a given angle. Combined extinction coefficient – How much loss as we pass through the material.
Doing this in a Monte Carlo ray tracer • For each ray • Integrate over random points around the ray intersection to compute diffusion term • Integrate over random distances into the material to compute the single scattering term How do we get the areas?
Simple optimizations • Falloff is exponential with distance for both terms • What does that give us? • Is anything redundant happening here?
Caveat Emptor • The dipole approximation assumes a flat surface • Assumes only one surface layer Be these problems?