Ray Tracing Engine
As part of the practical exercises for Computer Graphics Winter 2019-20, I incrementally built my own ray tracing system, which then was used to generate a high-quality rendering for the end-of-term rendering competition. This beautiful image of fireworks was created using the above source code for submission to rendering competition. Refer here for its full webpage.

Rendering Competition Submission
Full Report
Source code
Some reference images that highlight the features and capabilities of the rendering engine.
An image with julia set pattern generated in the code

Previous image rendered with a perspective camera

First image rendered with another perspective camera

First image rendered with an orthographic camera

Ray solid intersection for AABox, InfinitePlane, Sphere, Disk, Triangle, Quad

A cow model containing 34000 triangles is rendered using Bounding Volume Hierarchy acceleration ( + SAH)

A simple tree model instanced multiple times with different geometric transformations.

Colored point light sources

Colored spot lights (red and green) and a directional light (blue)

Using lambertian materials for all walls, sphere and box

Sphere as phong glossy material and floor as mirror material

Sphere as a combined material
​

Checkerboard and perlin noise texture
​

Mirror and clamp border handling of image texture

Nearest neighbour and bilinear interpolation for image texture

Texture mappers - triangle mapping on the walls and planar mapping on the spheres

Texture mappers -cylindrical mapping on the spheres

Area light source
​

Sphere as glass material and floor as fuzzy mirror material

Depth of field
​

Supersampling - 1000 samples per pixel
​

Motion blur due to horizontal movement
​

Bump mapping close up scene using nearest-neighbour image texture

Bump mapping close up scene using bilinear interpolated image texture

Bump mapping full scene using bilinear interpolated image texture

Pervasive fog with volume renderer
​
