Mini-Exam 3: Rules and Information

The third “Mini-Exam” (I hate to call it a midterm because there are 3 of them, they are small, and its not the middle of the semester) will be Thursday, April 22nd during the class period.

These instructions are unchanged from prior exams, but are reproduced here so you have easy access to them. The content list is below.

Basic Info

Basic Info

The rationale for this style of exam is discussed on the Course Web:

The exam will be semi-synchronous: you must take it during the class period (11am-12:15pm, Madison time, Thursday April 22n), but it is up to you when during that 75 window that you take it.

The exam will be given as two Canvas quizzes. You will be allowed to spend 24 minutes on each. You can start a quiz any time during the exam window, but once you begin a quiz, you must complete it within 24 minutes. And you must complete both quizzes by 12:15. If you want to start at 12:10, you will only have 5 minutes. If you want the full 48 minutes to do the work, you need to start before 11:27. If you start earlier (11am or shortly after), you will have time to take a short break between the quizzes (recommended).

Details of the rules and content are given on the Mini-Exam 3: Rules and Information page on the course web.

Key Rules

Key Rules

These rules are unchanged from Exam 1 and 2.

  1. You must not communicate with other students in class during the exam window (even when you are not taking the exam).

  2. You must not discuss the exam with anyone during the exam window. This includes any form of writing (posting, replying, messaging, etc.) to any forums (Piazza, Stack Exchange, Discord, etc.).

  3. You must avoid listening/reading to people violating the rules; e.g., if someone else makes a posting or message during the exam period, you should not read it.

  4. The exam is “open book” - we will not try to prevent you from reading (or viewing) existing materials. The exam timing will limit your ability to do research on the answers to the questions. Remember, that writing (asking a question, or posting an answer) is not allowed during the exam window. And, reading something illegal is academic misconduct.

  5. You may use a “calculator”, which includes writing programs. But, be careful of the time it takes. The questions are designed that you should be able to figure them out “by hand” (with pencil and paper) more quickly than trying to program.

  6. We must be strict about the start/stop time of the exam window because students in class are allowed to discuss the exam and class material outside of the window.

  7. The rules of proper academic conduct apply. See the course page on Collaboration Policy and Academic Conduct for more details.

In case of technical difficulties

In case of technical difficulties

Inevitably something will go wrong for someone.

If you have a problem:

  1. If you have a technical issue during the exam, try to complete the quiz you are taking as best you can. You may want to take a screen shot of the problem. You may want to save your work (e.g., a screenshot or print-to-PDF) if you fear Canvas might mess up

  2. After completing the current Quiz, send a private message to the course staff on Piazza explaining the problem. If you have an internet failure that precludes accessing Piazza, you can send email to the Professor. If you can’t even send email, send a message as soon as your internet access is restored.

  3. Please alert us to technical problems as promptly as possible.

  4. We will not answer content questions during the exam. If you feel a question has an error or is ambiguous, take your best guess at what the question means. The questions usually ask for the “most correct” answer (in cases where you feel no answer is exactly correct).

  5. Please check Piazza and Canvas for announcements before beginning each Quiz.

  6. Canvas may allow you to take the quizzes in the wrong order. In the event you start taking the wrong quiz, complete the one you have started. Then complete the remaining quizzes in the correct order.

Technical problems do happen. During the Spring 2020 559 Final, the internet went out in my neighborhood! I had to proctor it by phone (fortunately, the peer mentors and TAs were in a different neighborhood).

Accomodations for McBurney Students

Accomodations for McBurney Students

If you have already arranged for additional time, we will try to convince Canvas to give it to you. You must still complete the quizzes within the exam window, but you be given longer to take each quiz. This means that in order to take all of your additional time, you must start the exam relatively promptly at the beginning of the window.

Because of limitations of Canvas, portions of the quiz may not be compatible with screen readers or other assistive technologies. If you are visually impaired and rely on screen reading technology for viewing the web, please contact the course staff before the exam.


Mini-Exam 2 will cover the topics presented in class during weeks 9-12. This includes Lectures 17-24, and workbooks 9-12. Lecture 25 will wrap up the topic of “Shadow Maps” - and there may be questions about shadow maps. The new material in lecture 25 may reinforce concepts previously discussed, but will not be asked about directly. Because these topics build on earlier topics, things from the first weeks of class are still relevant.

You are responsible for all topics discussed in lecture, described in the readings and presented in workbooks. We will ask you about the concepts in the workbook, but generally not things that are specific to the questions. We will not ask you about optional tools (e.g., Visual Studio Code or the Debugger). We may ask questions about JavaScript and GLSL, particularly the topics discussed in lectures or the workbooks.

The weekly surveys are a good model for the topics we will ask. We will not ask open-ended “essay” questions on this exam.

The outline of slides and lectures also provides a topic list (

Topic Outline for Weeks 9-12 (key points, may not be all-inclusive):

  1. Meshes (good triangles, vertex splitting, T-Junctions, …)
  2. Normals (uses, adjoints, …)
  3. Lighting
    • local vs. global, the simple models
    • the components of the basic lighting model (ambient, emission, diffuse, specualar)
    • Diffiuse and Specular models and equations
    • Specifying surface (lighting) properties
    • When to compute lighting
  4. Texturing
    • motivations (how to get more than 3 colors on a triangle)
    • steps for “standard” texturing (UV mapping with an image)
    • texture use, coordinate ranges
    • basic textures in THREE
  5. Texture Mapping Details
    • UVs and baricentric interpolation
    • interpolation, filtering and anisotropy
    • filtering using mipmaps
  6. Visibility
    • the problem (visibility vs. clipping vs. culling)
    • painters algorithm
    • Z-buffer (including the issues in using Z-Buffers)
  7. Graphics Pipeline
    • overall model, what are the steps
    • how does this lead to the shader model and efficiency issues
  8. Shader Basics
    • how programmable shading fits into the model
    • GLSL basics
    • variable types (how shaders communicate)
    • connection to the host program
    • lighting in shaders
  9. Shader Programming
    • shader idioms (using built-ins)
    • shader anti-aliasing
    • displacement map shading
  10. Texturing Tricks
    • fake normals for fake lighting
    • bump and normal maps (and their difference from displacement maps)
    • skyboxes
    • environment mapping
    • spherical and cubic representaitons for maps
    • layered textures
    • light maps
    • shadow maps