As part of the Udacity VR Nanodegree program, I created a project to focus on the process of designing a mobile VR game starting from initial sketches and continuing through user testing iterations to reach a final product.
I will be in Rochester to defend my thesis 3/8/2013. The defense will take place in the graphics lab at 1pm.
While going through my copy of Physically Based Rendering for the millionth time, I remembered that there is a nice utility function called GetVolumeScatteringProperties(). This function has access to a nice library of measured data from previous papers. The valid names are listed in core/volume.cpp, but for easier lookup they are also listed below.
So far I have implemented a texture controlled approximation of heterogeneous subsurface scattering. Now I am working on a more accurate Finite Element solution based on the phd work of Adam Arbree.
Results from adding subsurface scattering effects to my Ray Tracer based on the dipole approximation method by Jensen
Photon Mapping results from my Ray Tracer
My ray tracer can now load .ply models and uses kd-trees (TA-B traversal) for acceleration. I used the high res model of the Standford Bunny which has around 69,000 triangles. Without any form of acceleration, the render times are over 1 hour for the basic ray tracer.
Abstract:Many real world materials exhibit complex subsurface scattering of light. This internal light interaction creates the perception of translucency for the human visual system. Translucent materials and simulation of the subsurface scattering of light has become an expected necessity for generating warmth and realism in computer generated imagery. The light transport within heterogenous materials, such as marble, has proved challenging to model and render.
For Advanced Rendering I will be continuing work on my raytracer from CGII.
"A stereogram is a pair of stereo images that provides the illusion of depth when viewed using a stereoscope. An autostereogram provides the illusion of depth from a single image without the need for a stereoscope. " The goal of this assignment was to create a autostereogram generator. I chose to do my implementation in Matlab. This will be the depth map used for all tests. Below is my random dot stereogram. Images can be enlarged by clicking on them.
As my extension, I chose to make a more appealing stereogram by using an image for my pattern. Below is the stereogram generated using a "hello kitty" image and the previously used shark depth map.
This is an update of how my food rendering is progressing. I have not yet done a true shader for the mashed potatoes or the sauce and I still need to add displacement, specular, and subsurface scattering to the meat shader. Also, I am still trying to work out the hypertexture shader and lighting to achieve a bread effect. However, in my experiments I found that I still achieved an appealing cheese ball look.
For checkpoint 7, I implemented Ward and Reinhard tone reproduction.Below is Ward and then Reinhard with a nit value of 1.
Transmissive materials have been added to my Ray Tracer and I have made the back sphere more reflective.
This is my image for the class Renderman contest. It was created using RIB archiving. Notable effects include subsurface scattering calculation, displacement mapping on the ground, and depth of field. A more detailed write up of the procedure is forthcoming.
I was able to find my error in applying subsurface scattering to my grape shader. I had an incorrect value in my rib file that wasn't allowing the entire irradiance point cloud to be baked out properly. I fixed the value and below are the renders with two different material presets.
The next step in the ray tracer was to add reflection. The following scene was rendered using these rules:* Make the "back" sphere reflective (kr ≠ 0.0)
This past weekend I shot some reference images to examine the properties of french bread, oil, a glossy plate, and I got some nice images of red wine caustics.
The goal for the next step of my ray tracer was to recreate the checkered floor procedurally.
Below is the same image with super sampling of n=3:
As a bonus, I created a second procedural texture by using a combination of sqrt and modulus to created curved purple and blue stripes.
Below is the same image with super sampling of n=3: