Used in graphic design, ray tracing is the act of using the path that light takes through pixels to create images. Ray tracing simulates the effects that light rays have on the objects they encounter. Images created with ray tracing are usually of better quality and have a higher degree of realism, but take longer to complete and requires more computing power. Therefore, ray tracing is most often used for creating still images.
For example, ray tracing may be used in film because the images can be made in post-production, thus having plenty of time. By contrast, video games require faster image rendering; so ray tracing is not the best option.
How does ray tracing work?
Software called a ray tracer simulates the journey of individual light rays from a virtual light source to a virtual camera lens. The virtual light ray may pass through volumetric atmospheres such as fog or smoke, and interact with material surfaces such as metal, glass, or water, for instance. Each of these objects is designed and modeled by artists and engineers to affect the scene's appearance as rendered by the ray tracer. Advanced ray tracers may apply additional computations such as interreflection, radiosity, and caustics to simulate complex behaviors of light.
How long does it take?
Ray tracing can generate highly realistic images, but is computationally expensive, and therefore very slow. For example, each still frame of the computer-animated film Monsters University, released by Pixar in 2013, required 29 hours to render. At 24 frames per second, the 110-minute film has approximately 160,000 frames. Pixar used a massive render farm to distribute the computation, completing it in a matter of months. On a single computer, the film would have taken four and a half million hours — 524 years — to finish rendering.
Not all renderers are ray tracers
Because it takes a long time to compute, ray tracing is often used for the final render. Intermediate or preview renders are often performed with "cheaper" renderers, which quickly produce a lower-quality image. For example, Blender uses the Cycles Renderer to perform ray tracing, or the Blender Internal Renderer to quickly render non-photorealistic images.
Ray tracing on the GPU
Traditionally, ray tracing is performed by the CPU, not the GPU. The hardware of a GPU is designed to pump out as many FPS (frames per second) as possible, to enhance real-time graphics applications such as video games. In contrast, ray tracing is usually a slow process, sacrificing real-time speed for photorealistic quality. Therefore, ray tracing software has not been designed to run on GPU hardware, and GPU hardware has not been designed to perform ray tracing.
However, on August 13, 2018, NVidia announced its new Turing graphics processing architecture, capable of performing ray tracing in real time. The first GPUs to use the Turing architecture, the Quadro RTX, are scheduled to be released at the end of 2018.
Ray tracing software
The following are examples of ray tracing software available for download or purchase.
- Autodesk 3ds max — A proprietary 3D modeling, animation, and rendering application, aimed primarily at CAD users, such as architects.
- Autodesk Maya — Similar to 3ds max, but with a focus on character animation.
- Blender — A free, open-source 3D modeling, animation, and rendering application.
- Bryce — A fractal landscape generator introduced in 1994.
- Cinema 4D — A 3D modeling, animation, and rendering application with procedural effects for filmmakers and motion graphics artists, advertised as easy to learn.
- Houdini — A fully-featured 3D animation application featuring simulated physics, fluid dynamics, and volumetric simulations. A limited version named Houdini Apprentice is available for students and enthusiasts to use for free.
- Lightwave — A 3D CGI application that is used to create motion graphics, special effects, and video games.
- LuxCoreRender — A free, open-source renderer for Windows, macOS, and Linux.
- POV-Ray (The Persistence of Vision Raytracer) — A free, open-source renderer that creates images from SDL (Scene Description Language), a Turing-complete language with macro support.
- RenderMan — A film-quality renderer developed by Pixar, used in films such as Incredibles 2 and Avengers: Infinity War.
- Visionaray — An open-source, cross-platform ray tracing library.