I've recently become interested in photorealistic rendering, and I've been looking at the different rendering philosophies. I read this Disney Research bachelor's thesis, which states both the radiative transfer equation (RTE)

$(\vec{w}\cdot\nabla)L(\vec{x},\vec{\omega}) = -(\sigma_{a}+\sigma_{s})L(\vec{x},\vec{\omega})+Q(\vec{x},\vec{\omega})+\sigma_{s} \int_{\Omega}L(\vec{x},\vec{\omega})\rho(\vec{\omega},\vec{\omega}')d\vec{\omega}'$

and that

Exact BSSRDFs follow trivially from exact solutions to the RTE. Unfortunately, closed form solutions of the RTE for general 3D geometry, illumination and materials are rare, which motivates analysis on simplified, lower dimensional domains.

But most shaders use BSSRDF's and(/or?) the Rendering Equation instead, even high-end shaders like Disney's Hyperion, even though the Rendering Equation supposedly doesn't take into account sub-surface scattering, polarization, etc..

So my two questions are a) what is the reason for not using the radiative transfer equation for photorealistic rendering (or an approximation like the skin-shaders used for Big Hero and Moana), and b) how are the parameters like the phase functions and coefficients found for different materials like skin, hair, water, metal, glass?


I suspect the answer to (a) is simply performance. Full volumetric path tracing / photon mapping based on the RTE can certainly be done (and I'm sure it sometimes is), but it's very expensive and requires enormous numbers of samples to converge to a noise-free result.

This is especially true when the scattering medium is very dense, like in human skin and hair, or materials like milk, plastic, marble, or jade. In such materials, the light scatters so quickly that it's essentially isotropic after a couple of millimeters, so a BSSRDF is a very good approximation to the true volumetric scattering, and far cheaper to evaluate. (Performance matters even for offline rendering!) A mixture of volumetric simulations and empirical data might be used to derive and validate the BSSRDF.

As for how the coefficients are measured, one technique I've read about is to shine a narrow, bright beam of light (like a laser pointer) onto the material, then measure the light scattered back out using photosensors placed at different distances from the incident point. By processing this data you can then get an estimate of the scattering coefficients. This paper shows a sensor based on this idea being applied to human skin, and this one has more details about setting up a sophisticated (multi-layer) BSSRDF based on empirical data.

  • $\begingroup$ Thank you for your response! So if I understand correctly, basically any BSSRDF function can closely approximate the corresponding RTE solution given the proper coefficients and modeling assumptions. Also, what happens when you have a scattering medium that is not as dense, like for water or glass? Is the BSSRDF actually easier to use because there's less back-scattering? I don't have enough reputation to upvote, but I will wait a few hours to see if other users have different viewpoints, and if not I will accept your answer. Thanks! $\endgroup$ – BJParks Jun 18 '18 at 23:35
  • 1
    $\begingroup$ As I understand it BSSRDFs work especially well when the scattering is small scale, ie high scattering coefficients. For air/water/glass it's often sufficient to do single scattering in a path tracer and leave multiple scattering out of it (which is biased but, again, often good enough). For cases where you can't ignore the multiple scattering, I don't know of a better approach than full volumetric path tracing or volumetric photon mapping. $\endgroup$ – Nathan Reed Jun 19 '18 at 3:16

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.