This modified lrt and the program viewer can not be run without permission 
to use shared memory.  Shared memory is used to pass pixel information from
lrt to the viewer program so that the status of the render can be checked as
it is progressing.

Details of the algorithms involved can be found on the writeup at:

http://www.stanford.edu/~emerald1/fp.html

under the links caustics and bump mapping.

