Ray tracing
Used in graphic design, ray tracing uses the path that light takes through pixels to create images. Ray tracing simulates the effects of light rays 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 require more computing power. Therefore, ray tracing is 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 may 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. Each object 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 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 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 usually used for the final render. Intermediate or preview renders are often performed with "cheaper" renderers, quickly producing a lower-quality image. For example, Blender uses the Cycles Renderer to perform ray tracing or the Blender Internal Renderer to render non-photorealistic images quickly.
Ray tracing on the GPU
Traditionally, ray tracing is performed by the CPU (Central Processing Unit), not the GPU (Graphics Processing Unit). 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 slow, sacrificing real-time speed for photorealistic quality. Therefore, ray tracing software was not designed to run on GPU hardware, and GPU hardware has not been designed for ray tracing.
However, on August 13, 2018, NVIDIA announced its new Turing graphics processing architecture, capable of performing real-time ray tracing. The first GPUs to use the Turing architecture, the Quadro RTX were 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 (Computer-Aided Design) users, such as architects.
- Autodesk Maya — Like 3ds max, but focusing on character animation.
- Blender — A free, open-source 3D modeling, animation, and rendering application.
- Bryce — A fractal landscape generator was 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 (Computer-Generated Imagery) application that creates 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.
3D animation, Ambient occlusion, CAD, Game terms, Radiosity, Ray casting, Simulation, Software terms, TurboSquid