The course webpage contains links to the syllabus and past tripos questions, the exercise sheet and additional material.

Please hand in work at least 24 hours before the supervision, either by email or paper-based via the post box outside Student Administration in the William Gates Building.

First Supervision

  1. Warmups.
    1. Suppose you are designing a user interface for someone who is colour blind. Describe how some user interface of your choice should be suitably modified. [2]
    2. Why is it better to look at stars and comets slightly off-centre rather than looking directly at them? [2]
    3. In a CAD system blue would be a poor choice for the colour of an object being designed. Why is this? [2]
    4. In New Zealand, warning road signs are black on yellow, it being alleged that this is easier to see than black on white. Why might this be true? [2]
    5. Explain the difference between additive colour (RGB) and subtractive colour (CMY). Where is each used and why is it used there? [4]
    6. Why is the sky blue? [Hints: Why might it be blue? Why are sunsets red? Are the red of a sunset and the blue of the sky related?] [2]
    7. Explain how either a plasma display, a LCD, a CRT or a DMD-based projector works. [4]
    8. Explain how either laser printing, inkjet printing, solid ink printing, dye-sublimation printing or offset printing works. [4]
  2. For each of the CIE XYZ, CIE L*a*b*, RGB, CMY and HLS colour spaces
    1. describe what the co-ordinates represent [2 each]
    2. describe why the co-ordinate system is a useful representation of colour. [1 each]
  3. 2006 Paper 6 Question 5 Part (a) [6]
  4. 2007 Paper 3 Question 5 Part (b) [10]

Second Supervision

  1. Warmups.
    1. How has computer graphics been affected by the advent of the GUI? [2]
    2. On paper run Bresenham’s algorithm (slide 112) for the line running from (0,0) to (5,3). [4]
    3. Describe an algorithm to fill a triangle. Show that it works using the triangle with vertices (0,0), (5,3) and (2,5). [4]
    4. Prove that the Bernstein polynomials sum to 1. [2]
    5. Explain how to derive a sequence of transformations to perform a 2D rotation about an arbitrary point. [2]
  2. Describe an algorithm which clips an arbitrary polygon against an arbitrary convex polygon. [6]
  3. 1999 Paper 4 Question 10 First Part [8]
  4. 2001 Paper 4 Question 10 [4, 5, 1]
  5. 2004 Paper 5 Question 5 Part (b) [6]
  6. 2005 Paper 5 Question 5 [6, 3, 4, 3]

Third Supervision

  1. Warmups.
    1. Describe what is meant by object, world, viewing and screen coordinates. [4]
    2. Illustrate the difference between orthographic (parallel) and perspective projection. [2]
    3. We use a lot of triangles to approximate stuff in computer graphics. Why are they good? Why are they bad? Can you think of any alternatives? [4]
    4. For a cylinder of radius 2, with endpoints (1,2,3) and (2,4,5), show how to calculate an axis-aligned bounding box and a bounding sphere. [4]
    5. Prove that depth interpolation is correct as given in the notes. [2]
    6. Break down the following 2D lines into a BSP-tree, splitting them if necessary. (0,0)→(2,2), (3,4)→(1,3), (1,0)→(−3,1), (0,3)→(3,3) and (2,0)→(2,1) [4]
    7. We often use triangles to represent a sphere. Describe two methods of generating triangles from a sphere. [4]
    8. How might one ray-trace a Bézier patch? [4]
    9. Find out about the bidirectional reflectance distribution function (BRDF), briefly describe it and explain how it improves on the naïve diffuse+specular+ambient model. [4]
  2. 1999 Paper 4 Question 10 Second Part [8]
  3. 2004 Paper 3 Question 8 [10]
  4. 2005 Paper 6 Question 6 [20]

Fourth Supervision

  1. Warmups.
    1. Briefly describe bicubic and trilinear interpolation as applied to sampling textures. [4]
    2. Compare and contrast texture mapping and solid textures. [4]
    3. Explain how bump mapping works. [2]
    4. Find out about and briefly describe the GIF image format. How does it compare to JPEG? [4]
    5. Design a 3×3 convolution kernel that sharpens an image. [4]
    6. Propose point processing functions for image inversion, histogram stretching, intensity thresholding, and gamma correction. [4]
    7. Outline the predictive mapping approach. [2]
  2. 1997 Paper 6 Question 4 Last three parts [12]
  3. 2006 Paper 6 Question 5 Parts (b) and (c) [14]
  4. 2007 Paper 3 Question 5 Part (a) [10]