Modified ObjectParser to log the id of the object it is loading.
Removed caching from Camera, and added a new abstract method decompose() that can be overridden to allow subclasses to partition a single camera into several.
Modified PinholeCamera significantly to reduce memory overhead, startup time, and processing time.
Added a placeholder for decompose() in RayBuffer
Added a base class RayMap for programmably mapping pixels to rays
Added an interface for 2D functions.
Added an interface for 3D functions.
Added an interface for map-types that convert a 2D coordinate into a value (such as texture maps, normal maps, etc.)
Modified the default recursion level from10 to 4 in Material.
Testing changes and cleanup
Removed extraneous code from RayTracer
Modified ParallelRayTracer to better handle ray distribution, and better handle maintaining performance when a camera moves frequently.
Added a simple four point area light that can be used to cast soft shadows.
Added a pass-through function for 2D functions.
Path Tracing now works! :D