For checkpoint 3, shading was added through shadow rays.
Below we have the picture of the scene with simple Phong Shading.
Next, one of the bonuses: Phong Blinn shading. Exactly the same values for the materials and light radiance where used, you can see the difference of both models.
Now another bonus, spawning arrays. I have made it possible to spaw arrays inside pixels in a grid, so inside each pixel we have 9 equally spaced rays that return color values which are averaged to get the final color of the pixel. Notice how the edges are less sharp. For this picture simple Phong illumination was used.
Last but not least, two light sources. Again, simple Phong was used.
More than two light sources can be used. It’s also possible to combine grid rays, multiple light sources and either Phong or Phong Blinn shading together. Here are just a few of the combinations for the sake of not making a huge post.