Ray tracer

Period:

Year 1

 

Duration:

 8 weeks

 

Team Size:

 Solo Project

 

Role:

Graphics programmer

 

Game Engine:

JBikkr Template

 

About the Project:

For this project I had to create a ray tracer that was capable of rendering different shapes. This had to be done with good shading(Blinn–Phong) as well as with reflections.

 

I was most interested working on the different data structures and getting the shading done correctly, as shading adds a lot to the feeling/look and data structures are pleasing to work with.

Features

  • Camara
  • Vector Math
  • Hardcoding UI
  • Ray-Plane & Ray-Sphere Collision
  • Blinn-Phong Shading
  • Reflection
  • Bounding Volume Hierarchy

Challenges

Ray-Plane & Ray-Sphere Collision

Addressing collision demands necessitated delving into shape definition through formulas. I successfully implemented ray-sphere and ray-plane collision techniques, despite the initial challenge of grasping applied mathematics. This endeavor significantly enhanced my proficiency in vector utilization and applied mathematical concepts.

 

Reflection

This feature proved both enjoyable and demanding, requiring meticulous logic sequencing to avoid frustrating outcomes from even a single step being out of place. The complexity was heightened by incorporating recursion, making the process all the more intricate.

 

BVH

Creating a BVH (Bounding Volume Hierarchy) and designing a custom data structure were novel experiences for me. I conducted research to comprehend data structure mechanics, ultimately selecting a binary tree that best suited my requirements.