CSCI 480/580 Lecture 11 - In-Class Problems

You will spend today's class giving yourself a self-guided tour of the A2 skeleton code. For problems 1 and 2, you and your partner will collaboratively write/draw up your solution (e.g., in a Google Doc), save/export it in PDF format as tour.pdf, and commit and push it to the base directory of your repository.

  1. Get on a Discord call with your A2 partner. If you haven't already, create your team (username1_username2_a2), and create your repository. Clone the repository locally and open up the WWURay/src folder in a file browser. Take a look at each file and, where applicable, read the comments at the top describing each submodule's purpose.
  1. For each of the following functions, read the spec to get an idea of its purpose, then determine which lecture(s) covers the material needed to implement it:

    • main
    • traceray
    • closest_intersect
    • Scenes.ray_intersect
    • determine_color
    • shade_light
    • is_shadowed
  2. Draw a directed graph that describes the structure of the ray tracing code, in which each of the above functions is a node and a directed edge from node a to node b means "a calls b". It's ok if you're a little fuzzy on some particulars at this stage: the goal is to understand the purpose of the major functions and how they fit together.

    To draw your graph, I recommend using the Google Docs drawing editor (pretty nice, but you'll need to share screen and it doesn't support simultaneous collaborative editing) or a collaborative whiteboard app such as https://awwapp.com/ (slightly clunkier editing tools but allows for real-time collaboration - hit the green Invite button generate a link).