If you want to get straight into the coding, you may want to skip ahead to Day 12. However, I think you'll benefit from the background provided in this and the following pages.
This page is still under construction, but here's an overview of the key concepts introduced today:
What is Ray Tracing?
Ray tracing is a powerful technique in computer-generated imagery (CGI) that simulates the way light interacts with objects in a virtual 3D environment. At its core, ray tracing involves tracing the paths of virtual light rays as they travel through a scene, bouncing off surfaces (reflection), and bending through transparent materials (refraction).
This approach allows for the creation of highly realistic images, capturing subtle effects like mirror-like reflections, and glassy transparency.
Historical Parallels
The concept of ray tracing has interesting parallels in art history, particularly in the use of perspective. Just as artists of the Renaissance developed mathematical rules to depict three-dimensional scenes on a flat canvas, ray tracing uses mathematical models to project a virtual world onto a two-dimensional image.
Performance and Applications
Among CGI techniques, ray tracing is known for its computational intensity. Calculating the paths of millions of rays and their interactions with complex scenes requires significant processing power. For many years, this made ray tracing impractical for real-time applications like animation or gaming, and it was primarily used for producing high-quality still images in fields such as visual effects, architectural visualization, and product design.
However, in recent years, advances in hardware and software have begun to make real-time ray tracing feasible. Modern graphics cards (GPUs) now include dedicated ray tracing cores, and several popular game engines support ray-traced effects. As a result, ray tracing is starting to appear in video games, bringing more realistic lighting and reflections to interactive graphics—though often in a hybrid approach combined with traditional techniques to balance quality and performance.