Computer Laboratory

Introduction to Graphics (2 supervisions) (Michaelmas 2017)

Click here to check the course website.

This set of supervision exercises is heavily based on the previous IB Computer Graphics and Image Processing course.

Please hand in your work by 17:00 on the day before the supervision!


Supervision 1

Warmup questions

  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. Why is it better to look at faint stars and comets slightly off-centre rather than looking directly at them?
  3. In a CAD system using blue lines on a black background would be a poor choice for the interface colours for designing an object. Why is this?
  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?
  5. What are the ray parameters of the intersection points between ray (1,1,1) + t(−1,−1,−1) and the sphere centered at the origin with radius 1? [FCG p89]
  6. Explain why we use homogeneous co-ordinates.
  7. 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?

Longer questions

  1. Calculate the ultimate monitor resolution (i.e. colour pixels/inch) beyond which better resolution will be unnecessary. State what kind of monitor you are considering.
  2. Explain the Phong shading reflection model. How does it relate to Phong shading?
  3. What information would you need to define a ray-tracing viewing volume
  4. What are the Model, View, and Projection transformations?
  5. 2010 Paper 4 Question 4

Optional Exercises

  1. Define and then compare and contrast the following methods of specifying rotation in 3D. (You will need to look these up )
    • Euler Angles
    • Quaternions

Supervision 2

Warmup questions

  1. Put the the following stages of the OpenGL rendering pipeline in the correct order. Very briefly explain what each stage does.
    • Rasterization
    • Vertex shader
    • Fragment shader
    • Primitive setup
    • Clipping
  2. What is OpenGL? Why is it an API?
  3. Explain the following OpenGL concepts:
    • Vertex Buffer
    • Index buffer
    • Vertex Array Object
  4. What are the glsl in, out and uniform variables?

Longer questions

  1. When transforming objects into world co-ordinates using matrix M, position vectors are pre-multiplied with M. Discuss what matrix you would need to use to transform the objects' normals.
  2. Describe the z buffering algorithm. Compare the projection matrix on slide 91 with the projection matrix in the 2010P4Q4 past paper, and discuss which one you need to use for Z buffering
  3. 2017 Paper 3 Question 4
  4. How could you implement a reflective water surface in OpenGL using Frame Buffer Objects? What if you wanted to add reflection onto a spherical surface? (Ray tracing is tempting, but you are to think about the OpenGL way here :) ).
  5. Describe the use of each of the following colour spaces
    • RGB, sRGB
    • HLS
    • XYZ
    • LUV, L*a*b*