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 [60]

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. What is the point of double buffering and how does it work? [4]
4. Explain how either a plasma display, a LCD, a CRT or a DMD-based projector works. [4]
5. 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. 2005 Paper 3 Question 8 Part (a) [6]
4. 2006 Paper 6 Question 5 Part (a) [6]
5. 2007 Paper 3 Question 5 Part (b) [9]
6. 2008 Paper 3 Question 4 Part (a) [4]
7. 2009 Paper 4 Question 6 Part (b) [4]

## Second Supervision [60]

1. Warmups.
1. What is “BitBlT” and when is it used? [2]
2. On paper run Bresenham’s algorithm (slide 110) for the line running from (0,0) to (5,3). [4]
3. Describe how to modify the previous algorithm to draw a straight line using only integer arithmetic. [4]
4. Describe an algorithm to fill a triangle. Show that it works using the triangle with vertices (0,0), (5,3) and (2,5). [4]
5. Prove that the Bernstein polynomials sum to 1 (for any n). [2]
6. Explain how to derive a sequence of transformations to perform a 2D rotation about an arbitrary point. [2]
2. Provide a pseudo-code implementation of the mid-point circle drawing algorithm. [6]
3. Describe an algorithm which clips an arbitrary polygon against an arbitrary convex polygon. [6]
4. 1999 Paper 4 Question 10 First Part [8]
5. 2004 Paper 5 Question 5 Part (b) [6]
6. 2005 Paper 5 Question 5 [6, 3, 4, 3]

## Third Supervision [60]

1. Warmups.
1. Describe what is meant by object coordinates, world coordinates, viewing coordinates 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 the smallest axis-aligned bounding box and bounding sphere. [4]
5. 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]
6. Describe a method of generating triangles from a sphere. [2]
7. 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. [2]
2. 2004 Paper 3 Question 8 [10]
3. 1999 Paper 4 Question 10 Second Part [8]
4. 2005 Paper 6 Question 6 [20]

## Fourth Supervision [60]

1. Warmups.
1. Briefly describe bicubic and trilinear interpolation as applied to sampling textures. [2]
2. Compare and contrast texture mapping and solid textures. [2]
3. Explain how bump mapping works, plus one major advantage and disadvantage of it. [4]
4. Find out about and briefly describe the GIF image format. How does it compare to JPEG? [4]
5. Describe how to design an ordered dither matrix. [4]
6. Design a 3×3 convolution kernel that sharpens an image. [Hint: Look up “unsharp masking” and express this using convolution.] [4]
7. Propose point processing functions for image inversion, histogram stretching, intensity thresholding, and gamma correction. [4]
2. 2006 Paper 6 Question 5 Parts (b) and (c) [14]
3. 1997 Paper 6 Question 4 Last three parts [12]
4. 2007 Paper 3 Question 5 Part (a) [10]