Ray Tracing



Author:   Tao Jiang
Date:   Jan 3, 2024



Abstract

We've created an extensive ray tracing demo that supports a range of materials, including Lambertian, metal, dielectric, and light sources. Our implementation handles the calculation of intersection points between rays and various shapes, such as spheres and planes. The application features two modes: a previewing mode allowing adjustment of the camera pose, and a rendering mode where ray tracing is computed for each pixel. To optimize performance, we've integrated multi-threading, decoupling the user interface from the rendering process. Each thread is assigned the task of rendering a specific, smaller block of the image. Rendering is conducted in a top-down manner for both the entire image and the individual blocks.






Implementation Details

Operating System: Windows
Programming Language: C++
Graphics API: Vulkan
IDE: Visual Studio Code
Libraries: GLM GLFW3 IMGUI