Photon tracing
From Wikipedia, the free encyclopedia
Photon tracing is a rendering method not unlike ray tracing and photon mapping for creating ultra high realism images.
Contents |
[edit] Rendering Method
The method aims to simulate realistic photon behavior by using an adapted ray tracing method, in a similar way to photon mapping it sends out rays from the light source, but unlike photon mapping these rays keep bouncing around until they do one of 3 things.
- They are absorbed by any material.
- Disappear out of the rendering scene.
- Hit a special photo sensitive plane, similar to the film in cameras.
[edit] Advantages and disadvantages
This method has a number of advantages compared to other methods.
- Global illumination and radiosity is automatic and relatively free.
- Sub surface scattering is simple and cheap.
- True caustics are free.
- There are no rendering artifacts if done right.
- Fairly simple to code and implement using a regular ray tracer.
- Simple to parallelize, even across multiple computers.
Even though the image quality is superior this method has one major drawback, rendering times. one of the first simulations in 1991, programmed in C by Richard Keene, it took 100 Sun 1 computers operating at 1 MHz a month to render a single image. With modern computers it can take up to one day to compute a crude result using even the simplest scene.
[edit] Shading methods
Because the rendering method is different from both ray tracing and scan line rendering photon tracing needs its own set of shaders.
- Surface shader - dictates how the photon rays either reflects or refracts from a surface.
- Absorption shader - tells the ray if the photon should be absorbed or not.
- Emission shader - when called it emits a photon ray
[edit] Future
Currently there are no commercial photon tracing solutions, with the upcoming new generation of ray tracing hardware it is conceivable that you could build large rendering farms that can attempt to render images on a commercial level. Ultimately even home computers will be able to render images using this method without any problem.