top of page

Project Details

This project was for a ray tracing course I took in college. The completed project contained reflections, transmissions using Beers law, full Cook Torrance bidirectional reflectance distribution function(BRDF), multiple importance sampling(MIS) rays, basic depth of field and anti-aliasing. Along with aforementioned ray tracing implementations, the project also had basic scene reading with Assimp mesh loading, parallel rendering using OpenMP, and a math library using Eigen math library.

 

Overview
The experience of implementing this ray tracer had given me a newfound respect for graphics. Combining probability with

graphics to make the inconceivably slow ray tracing algorithm into a manageable and reasonably accurate one was eye-opening. Graphics will never cease to surprise me with spectacular results from clever ideas. Also, who doesn’t like pretty pictures?

 

The following will be a description of the several stages I incrementally completed the project and what was achieved using which techniques.

Stage: Ray-Cast

Basic Algorithm: https://en.wikipedia.org/wiki/Ray_tracing_(graphics)

Personal project algorithm overview:

Note: Unfortunately Wix doesn't have any Syntax Highlighters, so a picture was the best I could do.
For the actual code snippets refer to my

Github Account: https://github.com/ChristopherHoskins/RayTracing

The ray tracing algorithm is fairly simple. The bulk of path-tracing is the shape intersections. Anyone looking for how to implement shape intersections with good notes should look at this wonderful resource.

https://www.scratchapixel.com/lessons/3d-basic-rendering/minimal-ray-tracer-rendering-simple-shapes

​

Results:

Nothing too impressive, but its on the way there! Currently the images contain very basic lighting with diffuse material. We will start to get significantly better results once we start adding BRDF calculations.

​

A little busy at the moment but more stages to come!

Stage: Path-Tracing

Path-Tracing Overview:

 

For this next stage I introduce a under-featured BRDF lighting model, to be more specific the Diffuse portion. With this new lighting model, there are several addition to the previous ray-tracing algorithm.

bottom of page