Constructs a PinholeCamera object with the specified location, viewing direction, and up direction,
but with default focal length and projection dimensions as specified above.
Constructs a new PointLightGrid object with the specified width, height,
and x and y spacing between lights and uses a default PointLight object
for each light in the grid.
Constructs a new PointLightGrid object with the specified width, height,
and x and y spacing between lights using the data from the specified
PointLight object for each light in the grid.
Performs the lighting calculations for the specified surface at the specified point of
interesection on that surface using the lighting data from the specified PointLight
object and returns an RGB object that represents the color of the point.
Controls wether the color of a point light source will be adjusted based on the
intensity of the point light or wether this will be left up to the shader.