In Search of the Perfect Grape:
                Modeling Translucent Objects Using Subsurface Scattering

                        Philip Beatty and Joong Ho (Johann) Won

                                                            CS348b Final Project


Holding a grape up to a bright light, you will see that light travels completely through the grape, illuminating some of the internal structure of the grape.  We wanted to capture this translucency as well as study how light scatters inside material.  See our initial proposal

Here are a couple of grape pictures we used as reference, obtained from






Our Approach

We modeled the grape as an algebraic surface, taking advantage of our code from Assignment #1.  We modeled light transport within the grape using the hierarchical dipole BSSRDF technique described in [6].  Because the surface of the grape curves around on itself, making all surface points relatively close together, we ended up having to delve fairly deep into the octree to get decent pictures.  Thus the hierarchical technique did not give us the kind of speed increase suggested by the paper.  We used a surface texture to account for the surface blemishes of the grape.  The internal structure which is visible when light shines through a grape consists of veins located 1-2 mm below the surface (compared to the overall dimensions of our grapes 20x20x30 mm).  Since these veins are 'lit up' by light traveling through the grape, we cannot capture this effect through a single-scattering term.  As an approximation, we assumed that the veins were on the surface but were only seen by light entering the grape from the 'far side'.  Thus, we used a vein texture and the angle from the single-scatter direction to weight the radiance integral.  We used a photon map to allow us to capture indirect lighting.  As in [6], we treated the grapes as diffuse reflectors when making the photon map.



Consider the following properties of a grape

  1. Light is able to propagate through a grape and show some of its internal volumetric structure.
  2. Grapes are highly scattering like skin or milk.

It is the sum of these properties, rather than one in particular that make grapes so difficult.  The first property suggests that a volume rendering/participating media approach is necessary ([2], [3]).  However, since a grape is highly scattering (a photon will bounce on average about 600 times before being absorbed) using a volume photon map is prohibitive.  Below is a ball of milk which we tried to render using volume photon mapping.  Even after 5 million photons in our photon map,  we couldn't get rid of the noise.  This is indicative of highly scattering materials and is the reason, we believe, why Jensen does not use volume photon mapping to render milk [5] and [6].  A highly scattering material like milk can be rendered using a dipole approximation and the BSSRDF, however this model assumes a homogeneous medium.  This works for milk because milk does not have any internal structure. Our problem was: how do we use an approximation like the BSSRDF in [5] and [6] while still capturing the visible structure of the grape?

 Volume Rendering of Ketchup and Milk Balls
Ketchup is less scattering and more absorptive, so it looks smooth at 100K photons.  Milk still looks noisy at 5M photons.

Ketchup 100 K Photons Milk 100 K Photons Milk  3 M Photons Milk  5 M Photons

We also had some difficulty due to the geometry of the grape.  The dipole approximation is developed using the approximation of a flat semi-infinite medium.  A grape, where the surface curves back, behind itself, is not even close to a semi-infinite medium.

Another difficulty was choosing the decay coefficients.  In [5], Jensen gives decay coefficients for some materials, but sadly not for grapes.  We used the parameters for milk while developing our system.  We then had to use trial and error to get good parameters for a grape.




Front Lit Textured

One of our earlier attempts with a funky texture.

Back Lit Textured

The same grape as to the left, now backlit.

Front Lit

A bunch of grapes. Notice the colour change over the grape as well as the hardly noticeable veins.

Back Lit

Here the veins show up much more prominantly.

Impulse Response

Here, we have shot a narrow beam of light at the grape. Notice how the BSSRDF allows the light to spread over the grape

Front Lit Diffuse Surface

Notice the hard shadows and uniform color.


    [1]     Reflection from Layered Surfaces due to Subsurface Scattering
    Pat Hanrahan and Wolfgang Krueger
    Computer Graphics (SIGGRAPH 93 Proceedings)

    [2]     Realistic Image Synthesis Using Photon Mapping
             Henrik Wann Jensen

     "Efficient Simulation of Light Transport in Scenes with Participating Media using Photon Maps"
             Henrik Wann Jensen and Per H. Christensen
             Proceedings of SIGGRAPH'98, pages 311-320, Orlando, July 1998

    [4]     "Modeling and Rendering of Weathered Stone"
            Julie Dorsey, Alan Edelman, Henrik Wann Jensen, Justin Legakis, and Hans K°hling Pedersen
            Proceedings of SIGGRAPH'99, pages 225-234, Los Angeles, August 1999

    [5]   "A Practical Model for Subsurface Light Transport"
            Henrik Wann Jensen, Steve Marschner, Marc Levoy, and Pat Hanrahan
            Proceedings of SIGGRAPH'2001, pages 511-518, Los Angeles, August 2001

    [6]     "A Rapid Hierarchical Rendering Technique for Translucent Materials"
            Henrik Wann Jensen and Juan Buhler
            Proceedings of SIGGRAPH'2002, pages 576-581, San Antonio, July 2002
            Also in ACM Transactions on Graphics (TOG) vol. 21, issue 3, July 2002