Ray tracing is a method for rendering three-dimensional (3D) computer graphic images to create an image that is as realistic as possible. This method is used during rendering, and does not necessarily affect how a scene or object is modeled or textured. The rendering process typically involves rays that are generated to simulate the path that light takes when interacting with objects, in order to more accurately analyze how objects will reflect, refract, and absorb light. Ray tracing can create rendered scenes of remarkable realism, but the process is also quite hardware intensive and has not commonly been used for real time graphics.
The process of creating a scene in 3D using computer graphics typically involves four or five major steps: modeling the objects, applying lighting and camera positions, animation if necessary, creating and applying textures to the objects, and then rendering the scene. Each of these steps can take a great deal of time, and the overall process usually consists of many more components than are discussed in this analysis. The final stage of this process, rendering, is when ray tracing can be used to make the rendered product far more realistic.
In the real world, people perceive objects around them due to light interacting with those objects and then being received by people’s eyes. Light can typically interact in any of four major ways: absorption, reflection, refraction, and fluorescence. Ray tracing uses fairly complex algorithms to replicate this behavior and allow objects in a scene to interact with light as realistically as possible. The person or team creating a 3D scene models, textures, and creates light sources and a camera within a scene, then rendering can be done using ray tracing.
Rather than evaluate how light travels from a light source to the objects and interacts with those objects, it is often easier to work backward from the camera and imagine light being emitted by the camera, interacting with the objects, and ultimately ending up at the light source. This allows rays of light that would not be captured by the camera to be ignored, rather than wasting processing power on aspects of the scene that will not be rendered. Ray tracing effectively traces the path that light rays take as they come into contact with the objects in the scene, and then plots the ultimate paths those rays take as they approach the camera on a two-dimensional plane.
This plane is the image that is created and displayed using ray tracing rendering. The resulting image is far more realistic with regard to lighting and how light plays across objects of various shapes and made from materials that are highly reflective or refractive. Glass, polished metal, and polished plastic are all types of materials that can appear far more realistic with this tracing than many other forms of rendering.
The process of analyzing these light rays is quite laborious, however, and most computers have not historically had the processing power to do so. This is why ray tracing has primarily been used for pre-rendered scenes in 3D, such as still images of cars for advertisements or scenes in a film. Real time rendering for video games, on the other hand, typically has used simpler forms of rendering to allow the scene to be rendered during game play.