Subsurface Scattering

I tried to implement subsurface scattering using the “A Rapid Hierarchical Rendering Technique for Translucent Materials” by Henrik Wann Jensen and Juan Buhler. Unfortunately, I could not get it to work correctly. This is how I tried to implement it. First, to sample the points on the mesh, I tried using the point repulsion method described in the “Generating Textures on Arbitrary Surfaces Using Reaction-Diffusion” and “Re-Tiling Polygonal Surfaces” by Greg Turk. This method proved to be hard to implement, difficult to debug, and time consuming. After talking with some classmates who were using the same paper, I found that you can just use the vertices of the polygon mesh weighted by the area. The second part of the algorithm, evaluating the diffusion approximation, was done by using a modified octree class. The values of the parameters for skin were taken from “Reflection from Layered Surfaces due to Subsurface Scattering” by Pat Hanrahan and Wolfgang Krueger. In retrospect, I probably should have consulted others and asked for more help. I also shouldn’t have tried to design it in the most general way possible, but concentrate on making it work on one specific case at a time.
subsurface.zip