Programming a 3D rendering engine (pbrt)

An interesting book on programming a 3D rendering engine (Pbrt) in literate programming language. Skills in programming and light science are needed.