Subsurface scattering (subsurface scattering) refers to the phenomenon in which light emits light to an object, enters the object, and the scattering in the object leaves the object from other vertices/pixels on the object surface. In transparent/translucent materials, this effect is obvious, such as skin and jade. Like the definition of BRDF, we define the reflected brightness/illuminance in the case of secondary surface scattering as bssrdf. We know that BRDF is a special case of bssrdf, that is, all light enters the object from a vertex/pixel, and the vertex/pixel also leaves the object. From the definition of the above surface scattering, we know that we should consider reflection in this case not only the reflection of the vertex/pixel on the incident light, we also need to consider the Light Scattering from other vertices/pixels on the surface to this vertex/pixel. While bssrdf is a global consideration, it contains the BRDF situation.
The rendering formula is
Lo = 00000000bssrdf * Li (XI, WI) * cos θ I * DWI * da (XI)
Here, bssrdf is a function of Xi, XO, WI, And wo. We simplify this function so that it is irrelevant to Wo, so that we can use the coefficient of vector to represent it in the projection stage. That is, we calculate the scattering contribution of each vertex/pixel on one-sided A to the vertex/pixel Xo. First, we use the Monte Carlo Integration Method for the outermost integration of one-sided a. We then sample n on one-sided A to calculate the scattering value each time. P (xi) = 1/S (). Get
Lo ≈ (1/n) * Σ (∫ bssrdf * Li (XI, WI) * cos θ I * diffusion)/P (XI)
≈ (S (a)/n) * Σ ∫ bssrdf * Li (XI, WI) * cos θ I * Diffusion
Next, we pre-project Li (XI, WI) and bssrdf * cos θ I to spherical harmonic to obtain the coefficients Tji and LJI. We only need
Lo ≈ (A/n) * Sigma Tji * LJI
Note that we need to simplify the above calculation for our precomputed Radiance Transfer calculation. We can assume that on one-sided A, the incident light is consistent everywhere, so we can use the vertex/pixel Li to replace the LJI of other one-sided vertices/pixels. in this way, our final computation can be expressed:
Lo ≈ (A/n) * Σ (LI * Σ Tji)
//
// PS: For the PRT processing SSS in DX9, I still cannot find the relevant implementation method materials.
// For details about bssrdf calculation, refer
// Derivation in "a practical model for subsurface light transport.
//