**Final Report**

Duowen Chen (f006gcf) and Diyang Zhang (f006h07)

(#) Motivational image

We are inspired by this first image of aeroplane, and considering to combine this with some features shown in the second image. The beautiful colour displayed out from the smoke vortex line filaments generated by the plane impressed us a lot, and so we would like to render the similar phenomenon with our stylization. In addition, to highlight the colour and remark the “lines” in this case, we would like to create as well some detail-preserved shining and glistening effect within the volumetric medium. (#) Proposed features and points We implemented the following features: * Volumetric path tracing with homogenous and heterogenous media with coloring (4-8 pts) * Photon mapping with global photon map, caustic photon map and final gathering (4-8 pts) * Environment Map with importance sampling (2-4 pts) * Microfacet Anisotropic BRDF (2-4 pts) * Directional Light (1-2 pts) * Depth of field (1-2 pts) * Transformation of texture (1-2 pts) (##) Division of collaboration We implemented volumetric path tracing, transformation of texture, depth of field together.
Diyang Zhang implemented microfacet anisotropic BRDF and all the modeling needed for showcase and validation tests.
Duowen Chen implemented photon mapping, environmenet map and sun light.
We consider this to be a equal disttribution of work.
(#) Validation for results (##) VPT with homogenous and heterogenous media with coloring: We first show our implementaion of homogenous media. We use the implementation provided from slides that sample distance is generated from a power disttribution mapped from a uniform random number. Then we implemented MIS style integrator given the pesudo code from slides:
![slide from cs287](./slide1.png)
For homo media, the implementation is in `media/homogenous.cpp` and `integrator/path_tracer_volume.cpp` We show effect of this below:
![homo media](../../scenes/assignment5/jensen_box_vol.png)
For sun light, the implementation is in `material/direct_light.cpp` With directional light (sun light) implementation, we also have the following effect:
![sun light homo media](../../scenes/assignment5/jensen_box_sun.png)
We then show our implementation for heterogenous media where we adopt the null particle scattering scheme from lecture slides. We also used a MIS style integrator for heterogenous media:
![slide from cs287](./slide2.png)
We show effect below:
![hete media](../../scenes/final_project/jensen_box_white.png)
Effect with color: ![hete media color](../../scenes/final_project/jensen_box_yellow.png)
(##) Environment Map with importance sampling We implemented environmenet map as a diffuse lightsource with a new surface object. We use importance sampling scheme from lecture give below: ![slide from cs287](./slide3.png)
mats mis
map no map
(##) Photon mapping with global photon map, caustic photon map and final gathering We implemented photon mapping with lecture suggestion as follows. We implement photon mapping where we break them to four parts: 1. Direct Illumination, 2. Global Photon Map, 3. Caustic Photon Map, 4. Emission
We store photon in a KD-Tree structure provided and we use a KNN estimation for Radience estimation and exclude caustic photon map from global photon map where the path is not LS+D (gloabl only store path not LS+D and caustic only LS+D). Below we show our result below:
final gathering
(##) Microfacet Anisotropic BRDF We implemented method for Anisotropic interfaced Lambertian microfacets material. We estimated the microfacet distribution function based on a Gaussian distribution of microfacet slopes due to Beckmann and Spizzichino (1963). We show our result below:
x1y9 x9y1
(##) Directional Light For Directional Light, we just impelemented because of the inspiration from the lecture slide of this one: ![directional light](../../scenes/assignment5/jensen_box_sun.png)
(##) Depth of field We implemented depth of field and result is shown below:
![depth of field](../../scenes/assignment1/example_scene3.png)
(##) Transformation of texture We implemented transformation of texture which was mentioned in previous assignment as an optional feature:
trans no trans
(#) Showcase image -- Color outside the lines: Due to time limit, we are don't able to get a low resolution version. The idea accord to color outside lines is that: * A line of color formed from the blue smoke * This doesn't exist within real word guidelines * This is outside the horizon which is another form of outside the lines * Pokemon Charizard should spits fire but we use a blue smoke to represent water which is not accord to the setting of Pokemon ![Showcase Image](../../scenes/final_project/showcase.png)