Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Rendering (computer graphics)
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
=== Path tracing === {{Main|Path tracing}} As part of the approach known as ''[[physically based rendering]]'', '''[[path tracing]]''' has become the dominant technique for rendering realistic scenes, including effects for movies.{{r|Pharr2023_1_6}} For example, the popular open source 3D software [[Blender (software)|Blender]] uses path tracing in its Cycles renderer.{{r|BlenderCyclesIntro}} Images produced using path tracing for [[global illumination]] are generally noisier than when using [[Radiosity (computer graphics)|radiosity]] (the main competing algorithm for realistic lighting), but radiosity can be difficult to apply to complex scenes and is prone to artifacts that arise from using a [[Tessellation (computer graphics)|tessellated]] representation of [[irradiance]].{{r|Pharr2023_1_6}}{{r|Glassner95|p=975-976, 1045}} Like ''[[distributed ray tracing]]'', path tracing is a kind of ''[[stochastic]]'' or ''[[Randomized algorithm|randomized]]'' [[Ray tracing (graphics)|ray tracing]] that uses [[Monte Carlo integration|Monte Carlo]] or [[Quasi-Monte Carlo method|Quasi-Monte Carlo]] integration. It was proposed and named in 1986 by [[Jim Kajiya]] in the same paper as the [[rendering equation]]. Kajiya observed that much of the complexity of [[distributed ray tracing]] could be avoided by only tracing a single path from the camera at a time (in Kajiya's implementation, this "no branching" rule was broken by tracing additional rays from each surface intersection point to randomly chosen points on each light source). Kajiya suggested reducing the noise present in the output images by using ''[[stratified sampling]]'' and ''[[importance sampling]]'' for making random decisions such as choosing which ray to follow at each step of a path. Even with these techniques, path tracing would not have been practical for film rendering, using computers available at the time, because the computational cost of generating enough samples to reduce [[variance]] to an acceptable level was too high. [[Monster House (film)|Monster House]], the first feature film rendered entirely using path tracing, was not released until 20 years later.{{r|Kajiya1986}}{{r|Pharr2023_1_6}}{{r|Kulla2017}} In its basic form, path tracing is inefficient (requiring too many samples) for rendering [[Caustic (optics)|caustics]] and scenes where light enters indirectly through narrow spaces. Attempts were made to address these weaknesses in the 1990s. ''[[Path tracing#Bidirectional path tracing|Bidirectional path tracing]]'' has similarities to [[photon mapping]], tracing rays from the light source and the camera separately, and then finding ways to connect these paths (but unlike photon mapping it usually samples new light paths for each pixel rather than using the same cached data for all pixels). ''[[Metropolis light transport]]'' samples paths by modifying paths that were previously traced, spending more time exploring paths that are similar to other "bright" paths, which increases the chance of discovering even brighter paths. ''Multiple importance sampling'' provides a way to reduce [[variance]] when combining samples from more than one sampling method, particularly when some samples are much noisier than the others.{{r|Pharr2023_1_6}}{{r|Veach1997}} This later work was summarized and expanded upon in [[Eric Veach]]'s 1997 PhD thesis, which helped raise interest in path tracing in the computer graphics community. The [[Autodesk Arnold|Arnold renderer]], first released in 1998, proved that path tracing was practical for rendering frames for films, and that there was a demand for [[Unbiased rendering|unbiased]] and [[Physically based rendering|physically based]] rendering in the film industry; other commercial and open source path tracing renderers began appearing. Computational cost was addressed by rapid advances in [[CPU]] and [[Computer cluster|cluster]] performance.{{r|Pharr2023_1_6}} Path tracing's relative simplicity and its nature as a [[Monte Carlo method]] (sampling hundreds or thousands of paths per pixel) have made it attractive to implement on a [[Graphics processing unit|GPU]], especially on recent GPUs that support ray tracing acceleration technology such as Nvidia's [[Nvidia RTX|RTX]] and [[OptiX]].{{r|Pharr2023_15}} However bidirectional path tracing and Metropolis light transport are more difficult to implement efficiently on a GPU.{{r|Otte2015}}{{r|Schmidt2016}} Research into improving path tracing continues. Many variations of bidirectional path tracing and Metropolis light transport have been explored, and ways of combining path tracing with photon mapping.{{r|Pharr2016_Ch16}}{{r|Pharr2023_13fr}} Recent ''path guiding'' approaches construct approximations of the [[light field]] probability distribution in each volume of space, so paths can be sampled more effectively.{{r|Pharr2023_13fr}} Techniques have been developed to [[Noise reduction|denoise]] the output of path tracing, reducing the number of paths required to achieve acceptable quality, at the risk of losing some detail or introducing small-scale artifacts that are more objectionable than noise;{{r|Pharr2023_5fr}}{{r|BlenderCyclesReducingNoise}} [[Artificial neural network|neural networks]] are now widely used for this purpose.{{r|BlenderSettingsDenoising}}{{r|OpenImageDenoise}}{{r|NvidiaOptiXDenoiser}}
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)