Ray Tracing
(Hearn & Baker: p. 527-543. Foley & van Dam: 16.12, p. 776-792 )

- tuned for specular and transparent objects
- global illumination for specular light
- partly physics-based: geometric optics
Ray tracing tree

raytrace( ray )
o find closest intersection
o cast shadow ray, calculate colour_local
o colour_reflect = raytrace( reflected_ray )
o colour_refract = raytrace( refracted_ray )
o colour = k1*colour_local + k2*colour_reflect
+ k3*colour_refract
o return( colour )
Comments
- computationally expensive
- avoid intersection calculations
- optimize intersection calculations
- many other optimizations
- antialiasing
- distributed ray tracing
- shadow penumbra
- depth of field
- motion blur
- antialiasing