Assignment 1

Building PBRT

I built pbrt using VS 2005. The process was fairly straightforward. Getting the yacc and lex files to compile correctly took a few tries. My build directory had spaces in it, so I had to add quotes to the lex/yacc command lines. Also, the course build description indicated a space might be needed after the "-o" option, but for my build a space after "-o" in the lex command actually caused the build to fail.

Finally, I had some problems with using parallel builds for the projects. The project files output all the builds to the same directory, and since all the builds try to write to the build log simultaneously, many of the builds fail. I ended up just disabling parallel builds rather than try to fix the project files.

Rendering the Scenes

Figuring out how to reproduce the scenes was mostly a matter of understanding the coordinate system conventions of pbrt, and getting a sense of the overall size of the scene in pbrt units. This ultimately came down to trial and error... guessing a few reasonable possibilities and narrowing the choices down based on comparison of the output and the desired result. Observing where the shadows fell on the face seemed to be the best method for figuring out how to adjust the lights to more closely match the sample image.

Rendering the images at 200x200 with 1 sample per pixel only took about a second, so there was very little time required to try the different possibilities. I considered writing a script to help enumerate the different possibilities, but I doubt this would have saved much time, since usually I found only a couple of tries were required to get the generally correct result and then a few more to tweak the lights to closely match the sample.