Final Project Report: Jade Happy Buddha

CS348b Computer Graphics: image synthesis Techniques

Huamin Wang,



Here I synthesized an image using the Happy Buddha model. I used the photon mapping and rapid hierarchical technique to simulate the subsurface scattering phenomenon. Project proposal is here.


The Happy Buddha Model, from The Stanford 3D Scanning Repository.



1. Trace photons from the light sources, record all photons that collide with the model (both caustic and other photons) into a photon map.

2. Evaluate the irradiance at each sample point using the photon map. The samples are chosen as the vertices of the original model, as the the distribution has already satisfied the sample requirement. Uniform sampling is not required, as points are weight by their areas. For coarser model, like bunny, mesh refinement is necessary. The irradiance samples are stored in an octal tree. The area at each sample point is computed, then the summed area, irradiance and the average position (weighted by irradiance) are calculated at each internal node in a bottom-top fashion.

3. The dipole diffusion approximation results are computed and stored in a lookup table. The radiant existence can be accelerated by looking up the table, instead of computing it at each time. Then, evaluate the diffusion approximation using hierarchical technique in [1]. Although the method only evaluates the diffuse approximation (due to multiple scattering) and ignores the single scattering term (due to single scattering), the diffuse term dominates when reduced scattering coefficient is much larger than absorption coefficient.

4. Choose proper scattering parameters for jade. I use similar parameters as the marble's, listed in the paper.

5. Add specular reflections. Add solid textures on the model. I use Perlin's marble function to simulate the jade's texture. To be more realistic, the period is decreased and the effect is scaled between light green and white, jade's common color. Add the background graph.



Single light from left front. Slightly weaker light, from left front. Caustics. Light passes a lens and converges on Buddha's feet. Single light shot from the back. See how lights penetrate the statue.


The final result


The final scene resolution is 531*900, it takes about 30 minutes to be rendered when no background or base is added. The whole picture takes almost 1 hour, as more intersection tests are needed. The happy Buddha model has 1,087,716 faces and 543,652 vertices. Totally 1,000,000 photons are used, and 543,652 sample points stored in the octal tree. Three lookup tables are used to cover the valid range of radiant exitance results. Each table contains 10,000 items, and the maximum estimated error is less than 0.01%.


Before starting on happy Buddha model, I spent some days working on Stanford Bunny. Here are some unfinished pictures, different in scattering and absorption coefficients.

Other stuffs

1. More about happy Buddha: The history & the legend

Stone statue of the Laughing Buddha dated to the Song Dynasty (960-1279). The statue is situated on Felei Peak at the Lingyin Temple, Hangzhou, just south of Shanghai, my hometown.

2. The background painting

Sorry I forget its name and the artist, is it painted during the Ming Dynasty? 



[1] A Rapid Hierarchical Rendering Technique for Translucent Materials
Henrik W. Jensen, Juan Buhler, Proc. of SIGGRAPH 2002
Reflection from Layered Surfaces due to Subsurface Scattering
Hanrahan, P. and Drueger, W., Proc. of SIGGRAPH 1993
[3] Monte Carlo Evaluation of Non-linear Scattering Equations for Subsurface Reflection
Pharr, M. and Hanrahan, P., Proc. of SIGGRAPH 2000