A RayTracer implementation in Unity ComputeShader
Over the 50 years of video gaming history, people have developed various ingenious techniques for visualizing their imaginary worlds. These techniques include rendering 2D lines & shapes, or rendering pre-rendered isometric sprites, or using linear algebra to render 3D geometry. However, some of the less commonly used techniques include Raymarching & Raytracing. Despite being slow, these techniques have a lot more control. Only until recently has Raytracing picked up in popularity.
I developed a Raytracer which performs Monte-Carlo approximation of light rays to render a beautiful & realistic depiction of a scene featuring accurate Global Illumination, Reflections, and Emission. The Raytracer is implemented in Unity Engine with custom rendering pipeline using ComputeShader to perform calculations on the GPU.
With this article, I aim to showcase the capabilities of Raytracing and provide an introduction to the rendering algorithms, and provide a visualized explanation of the algorithms and techniques used.