Advanced GraphicsExercise Set 1

# Exercises for the first supervision

Most exercises can be found in the Study Guide:
Section 1.2, Exercise 2
Section 2.3, Exercise 4
Section 3.7, Exercises 11 and 12
Section 6.4, Exercises 5(d) and 6

For your convenience the set of exercises is gathered together below.

• [1.2/2] In what circumstances is line drawing more useful than either ray tracing or polygon scan conversion. [2 marks]
• [2.3/4] (a) Describe the situations in which it is sensible to use a winged-edged data structure to represent a polygon mesh and, conversely and, conversely, the situations in which a winged-edged data structure is not a sensible option for representing a polygon mesh. (b) What is the minimum information which is required to successfully draw a polygon mesh using Gouraud shading? (you may need to refer to the Part IB course to refresh your memory about what is required for Gouraud shading). [4 marks]
• [3.7/11] (i) Show how to find the first intersection between a ray and a finite-length, open-ended cone, centred at the origin, aligned along the x-axis, for which both ends of the finite-length are on the positive x-axis (i.e. 0 < xmin < xmax). [6 marks]
(ii) Extend this to cope with a closed cone (i.e. the same cone, but with end caps). Take care to consider any special cases. [5 marks]
(iii) Extend this further to give the normal vector at the intersection point. [3 marks]
• [3.7/12] (a) A disc is a finite, planar, circular object. Describe an algorithm to find the point of intersection of an arbitrary ray with an arbitrary disc in three dimensions. Ensure that you describe the parameters used to define both the ray and the disc. [6 marks]
(b) Given the above algorithm and an algorithm to find the intersection of an arbitrary ray with a finite-length open cylinder, a programmer has two choices for implementing an algorithm to find the intersection with a finite-length closed cylinder. She could simply use the finite-length open cylinder primitive and two disc primitives. Alternatively she could implement the finite-length closed cylinder as a primitive in its own right by adding extra code to the open cylinder algorithm. Compare the two alternatives in terms of effciency and accuracy. [4 marks]
• [not in the study guide] Section 3.4.2 explains the problems with transforming normal vectors. Another way to think about this is to consider a tangent vector, T. The tangent vector and the normal vector must be at 90° to one another, which means that: N.T=0 (see comment after equation 7 on page 18). T is an ordinary displacement, which means that it scales and rotates in the same way as the object itself.
(a) If we scale the object by matrix S then T'=SxT. Find matrix M such that N'=MxN, which satisfies N'.T'=0, given that N.T=0 and T'=SxT. [3 marks]  [ l 0 0 ] S = [ 0 m 0 ] [ 0 0 n ]
(b) If we rotate the object by matrix R then T'=RxT. Find matrix M such that N'=MxN, which satisfies N'.T'=0, given that N.T=0 and T'=RxT. [4 marks]  [ cosθ sinθ 0 ] R = [ -sinθ cosθ 0 ] [ 0 0 1 ]
• [6.4/5(d)] Show that the open-uniform B-spline with k = 3 and knot vector [ 0 0 0 1 1 1 ] is equivalent to the quadratic Bezier curve. [7 marks]
• [6.4/6] Derive the formula of and sketch a graph of N3,3(t), the third of the quadratic B-spline basis functions, for the knot vector [ 0 0 0 1 3 3 4 5 5 5 ]. [6 marks]
This exercise set is marked out 50. This is equivalent to 90 minutes in an examination.

 © 2006 Neil Dodgson Please send any comments to Neil Dodgson (nad@cl.cam.ac.uk) Page last updated on 28-Apr-2006 at 12:16 by Neil Dodgson