Skip to content

Software Raytracer

Posted on:April 29, 2022
  • Prototype
Tech Stack:
  • C++

I have picked up this project to learn more about graphics programming, particularly offline rendering. In this case it is a ray tracer or more technically a path tracer. In essence it is an algorithm that calculates a pixel value based on ray-object interaction. Given different material types and their properties, different behaviour can be expected once the ray hits the object, simulating real-life physics of light scattering, reflection and refraction. The end result ends up producing photo-realistic images.

While this is a fairly general and simple solution, it was a good introduction to graphics programming and rendering. I have to thank the online book series Ray Tracing in One Weekend by Peter Shirley for providing an easy to follow and concise introduction to ray tracing.




24-11-2022 • I have implemented some multithreading to speed up the rendering process. I have divided portions of the image to be rendered based on how many hardware concurrent threads are available. Without multithreading, a 200x133 pixel image takes about 21 seconds to render. With multithreading, using 4 threads, it takes around 12 seconds to render, which is an improvement of ~42% in speed.