The following 473 words could not be found in the dictionary of 615 words (including 615 LocalSpellingWords) and are highlighted below:

above   absorption   account   accurate   accurately   across   actual   added   affected   aim   al   albedo   algorithm   all   allow   along   an   and   Andrew   angle   Another   appearance   apple   approach   approximate   approximation   approximations   area   around   artifacts   assumed   at   attachment   away   back   basic   be   Because   before   between   block   blue   Blue2apple   Blue2cream   Blue2fskim   Bonne   Breakdown   bright   broader   bump   bumpmap   bumps   but   by   caching   calculate   calculated   calculating   calculations   came   capturing   cause   challenge   Challenges   challenging   changes   channels   children   class   classes   clear   close   closely   coefficient   coefficients   color   Color   colors   Competition   completely   Computer   Conclusions   conf   consists   contributed   cream   creating   curve   debug   decided   decorations   decrease   described   details   determined   diameter   didn   difference   different   differently   difficult   diffuse   dipole   direct   Direct   disk   displacement   divided   dl   dominant   dominates   down   dramatic   due   Due   During   during   each   Early   easily   effect   effective   effects   efficiently   eliminate   encountering   equally   equation   errors   et   example   exhibiting   exitant   exits   fairly   far   features   figuring   Final   final   finer   fit   followed   For   for   form   found   framework   from   functioned   generate   geometry   Geometry   global   glossy   Graphics   green   Group   had   handled   Hanrahan   happy   helped   Henrik   Hierarchical   High   highly   homogeneous   hoped   how   However   illumination   image   images   imperfections   implement   implementation   Implemented   in   In   increased   increasing   instead   integrator   Integrator   intended   interesting   interface   interpolate   interpolated   into   Intro   invertible   investigate   irradiance   its   Jensen   jpg   July   Kim   known   Kreuger   Laurie   Layered   leaks   less   Levoy   Light   light   Lighting   lighting   lights   liked   linearly   listed   lit   locations   look   made   maintained   major   making   managed   map   mapping   Mapping   maps   Marc   Marschner   Marseille   match   Matching   matching   material   materials   Materials   matte   maximum   maya   Maya   mean   measured   Members   Mere   mesh   milk   Model   model   modeled   Modeled   Modeling   Models   models   modified   modulate   more   multiple   nature   necessary   needed   new   no   nodes   noise   non   noss   number   object   objects   Occitane   octree   of   often   omitted   On   on   order   Original   originally   Our   our   out   outlined   over   papers   parameters   part   particular   pass   Pat   path   pbrt   perturb   Photon   photon   photonmap   photons   plain   pleasing   plotted   pm   png   point   points   Practical   preprocessing   primitive   primitives   prior   Proceedings   process   produce   produced   project   Project   properties   Proposal   quickly   radiance   random   Rapid   ratios   Rd   react   realistic   Realistic   reduce   reduced   reference   References   references   Reflection   reflection   related   relatively   render   rendered   Rendering   rendering   represent   reproducing   resolution   results   Results   same   sample   samples   sampling   scanned   Scattering   scattering   scene   scratches   Self   settled   several   show   simple   since   Since   single   skim   small   smooth   soap   soaps   solid   solve   some   somewhat   Source   source   specified   specular   spots   ss   sss   started   step   Stephen   store   stored   stratified   style   subdivided   submit   submitted   subsurface   Subsurface   subtended   such   summarize   Surface   surface   surfaces   Surfaces   Synthesis   taking   target   team   Technical   technique   Technique   Techniques   tended   tends   term   terms   test   than   that   the   The   then   There   These   thin   things   think   this   those   thought   threshold   through   thus   time   to   took   top   track   translucency   Translucent   translucent   Transport   tried   try   two   uniform   uniformly   unpredictable   up   use   used   Using   using   value   values   various   version   versus   very   vs   Wann   wanted   was   ways   We   we   well   were   weren   when   which   With   with   Wolfgang   work   Work   would   writing   yellow   Yen   zip  

    LaurieKim/FinalProject

Final Project

Group Members

Andrew Yen
Laurie Kim

Intro

For our project, we intended to render a realistic image of soap, accurately capturing its subsurface scattering properties and surface geometry.

Techniques Implemented

Subsurface Scattering

In order to model the subsurface scattering of light through soap, we followed the implementation outlined in "A Rapid Hierarchical Rendering Technique for Translucent Materials" by Jensen et al. The basic approach was to do a two-pass rendering process. The first pass was to calculate irradiance samples on locations over the subsurface scattering object. On the final rendering pass, the irradiance sample values are used to calculate a dipole approximation of light scattering through the translucent material.

We added a Subsurface class to pbrt to represent a subsurface scattering object. The Subsurface class stored references to all the primitives that made up the object, as well as maintained an octree to efficiently store irradiance samples over the object. The octree was used to quickly approximate far away samples when the solid angle subtended by the samples was less than a specified threshold. We took uniform samples using stratified sampling over the primitives that made up each object. The number of samples was first determined by the area of the primitive divided by a disk with diameter of the mean free path. We then increased the number of samples as necessary in the final images to eliminate artifacts.

In calculating the exitant radiance at a point on the subsurface scattering object, the Subsurface class omitted the single scattering term since for highly scattering objects with albedo close to 1, the multiple scattering term dominates. We also assumed a diffuse radiance at the surface as light exits the material. We modified the SurfaceIntegrator interface to allow various surface integrator classes to implement how to calculate the irradiance at points on a surface. The irradiance samples were calculated during the preprocessing step prior to rendering. In particular, we modified the DirectLighting integrator to uniformly sample all lights to approximate the irradiance at a point. We also added a SubsurfaceScattering integrator to calculate irradiance by taking into account the global illumination in the scene using photon mapping.

During the rendering pass, each integrator needed to be modified to react differently when encountering a subsurface scattering primitive. The diffuse term came from the dipole approximation described above, but the glossy and specular terms in the BRDF functioned as before.

Early test of a subsurface scattering block using "skim milk" parameters

A thin back-lit block exhibiting no subsurface scattering

The same thin back-lit block exhibiting subsurface scattering

Models and Geometry

We modeled our soaps after the Marseille style Bonne Mere soaps from L'Occitane:

We originally modeled our soap as a relatively simple block using Maya. We intended to use bump mapping to show the surface details. However, we found that using bump maps didn't generate as dramatic and interesting surface details as we had hoped for. Subsurface scattering tends to smooth out small bumps on the surface, thus making bump mapping a less effective technique.

Original subsurface scattering block

With bump map and no subsurface scattering

With bump map and subsurface scattering

We decided to use displacement mapping instead to model the writing and decorations on the soap. We used scanned images of the soap surfaces as displacement maps to perturb the subdivided mesh in Maya.

Modeling surface features as actual geometry also helped produce more accurate scattering effects around the details.

Color Matching

Another part of the challenge of reproducing the look of our soap was in figuring out the scattering parameters to match the soap colors. The parameters that are necessary for the dipole approximation are the reduced scattering coefficient and the absorption coefficient. We started out with a target diffuse material color and a target dominant scattering color that we wanted to aim for. We then used the equation in Jensen et. al's "A Practical Model for Subsurface Light Transport" which related the diffuse reflection coefficient to the reduced albedo of a material to solve for the reduced albedo. Since this equation is not easily invertible, we plotted 100,000 points along the Rd vs. albedo curve and linearly interpolated the albedo value from the target material Rd value for the RGB channels. We then used the ratios of the scattering color to modulate the maximum diffuse mean free path of some known material such as those listed in [2]. These new mean free path values were then used to calculate the scattering coefficients.

These are example results rendered using our calculated parameters for the same material and scattering colors but different mean free path values modeled after measured materials:

Modeled after apple

Modeled after cream

Modeled after skim milk

These are the final parameters we settled on for several soap colors:

Technical Challenges

The subsurface scattering algorithm was fairly challenging to implement and debug. There were some details that weren't very clear in the papers that we had to work through, such as how to summarize children nodes in the octree and how to fit the calculated values into the broader surface integrator framework.

Another major challenge we came across was noise in the form of light leaks and bright spots when using photon mapping.

Because our scene consists of diffuse objects on top of a highly specular surface, the noise produced by photon mapping tended to produce random bright spots on the subsurface scattering objects. Due to the two pass nature of our subsurface scattering approximation, errors in the photon map affected the appearance in somewhat unpredictable ways and it was difficult to track down the cause of the errors. We tried a number of things to try to decrease the bright spots and noise in our image, such as increasing the number of photons and using irradiance caching to interpolate between irradiance sample calculations. In the end, we managed to reduce but not completely eliminate the noise.

High resolution image, rendered with photon mapping

Results/Conclusions

Our Final Image, rendered with direct lighting, which we submitted for the Rendering Competition. We decided to submit this version instead of the the photon mapping version due to its pleasing appearance.

We were happy with the results of our final images, as we thought the subsurface scattering effects made a dramatic difference versus the plain matte material.

With more time, we would have liked to more closely model the actual translucency of our reference objects, as well as the finer surface features such as scratches and imperfections on the surface of soap. Another interesting effect we would have liked to investigate was non-homogeneous materials often used in soap.

Work Breakdown

We think our team contributed fairly equally to this project. Laurie handled the photon mapping, irradiance sampling, and surface integrator changes as well as creating the models and displacement maps. Andrew handled the subsurface scattering approximations, bump mapping, and color matching calculations.

Source Code

source-code.zip

Original Proposal

Proposal

References

[1] Pat Hanrahan and Wolfgang Kreuger: "Reflection from Layered Surfaces due to Subsurface Scattering". Computer Graphics (Proceedings of SIGGRAPH 1993), July 1993.

[2] Henrik Wann Jensen, Stephen R. Marschner, Marc Levoy and Pat Hanrahan: "A Practical Model for Subsurface Light Transport". Proceedings of SIGGRAPH 2001.

[3] Realistic Image Synthesis Using Photon Mapping by Henrik Wann Jensen.

Recent