For my final project, I wanted to render a still life scene including simple primitives with advanced techniques.
Features that I wanted to implement are:
First, I implemented photon mapping, and rendered a scene with Cornell box. I constructed three different maps in order to apply different search resolution: direct illumination photon map, indirect illumination photon map, caustics photon map. Each map stores photons have landed in the scene. The maps are used in rendering process in order to estimate object's irradiance.
After I implemented the photon mapping, I created a bump map for the reflective sphere by using perlin noise.
I also try to implement depth of field by sampling on a circular lens at the camera position. I found larger number of camera rays makes smoother results. Unfortunately, the result was a disappointment. Even though I used many samples, I couldn't get soft edges and It tooks too much time to render the scene. Thus, I decided not to use this technique for my final scene. The below scene is captured with one jittered ray.
Finally, I rendered a scene with three different spheres. Each sphere has different material properties; mable stone sphere using perlin noise(left), bump chrome sphere (center), and glass sphere (right). I used square area light and the scene contains global illumination, direct illumination, and caustics. This scene was rendered with 50,000 photons with different search range for each photon map: direct illumination photon map with range 0.9, indirect photon map with range:10, caustics photon map with range 0.15.