# Tuesday, March 5th, 2002, 3:00 PM

Family Name:_____________________________

First Name:    _____________________________

Student ID:    _____________________________

Instructions:

Attempt all questions.

There are four questions.

The total mark is 24.

You have 50 minutes to complete the test.

Aids allowed: Brains, writing implements, calculators and prayers.

Textbooks and notes are NOT allowed.

1:           /8

2:           /6

3:           /6

4:           /4

_________

Total:                 /24

1.  Illumination: [8 marks] Laser scanners are now a common way to capture the shape of a real object. The figure below shows how they work: A focused point laser (like a single ray) is fired at the object in direction R. At the same time a camera focused on the object picks up the laser reflecting off the object. Given the position of the camera and reflected spot in the camera image, the viewing ray for the camera V, is determined. Now the 3D point on the object hit by the laser is the intersection point of the rays R and V.  Sweeping the laser over the object gives a number of 3D points on the object, capturing its shape.

a.      [4 marks] Will such a scanner for work for objects with a high ambient, diffuse or specular component? Explain.

b.     [4 marks] The laser is positioned at <0,0,0> with its ray directed along <2,1,1>. The camera is positioned at <7,0,1> and ray for the reflected image <-1,3,2>. What is the position of the 3D surface point captured by this setup.

2.     Projection: [6 marks] A unit cube lit by a point light at L(1.5,2,0) casts a shadow on the walls (xy, yz planes) and floor (xz plane) as shown:

a.      [2 marks] What are the coordinates of A', B' and C', the three corners of the shadow? (C’ is not shown to avoid clutter in the figure)

b.     [4 marks] For an arbitrary point P(x,y,z), how would you determine which wall or floor it would cast a shadow on, and what are the coordinates of this shadow point P'(x,y,z)?

3.     Visibility: [6 marks] We wish to write a shader that draws only the silhouettes of a polymesh objects. In other words we want to display the object by only drawing the edges that form the outline of the object. For an edge E, let V1,V2 represent its adjacent vertices, and F1, F2 its adjacent faces. The normalized normal vector for a face F is F’ and for a vertex V is V’.

a.      [2 marks] For a convex polymesh object, write an algorithm that given an edge E, and viewpoint V, determines whether E is a silhouette edges.

b.     [2 marks] Will your test work for concave objects as well? If not draw an example of a concave object and viewpoint and mark out an edge for which this test would fail.

c.     [2 marks] We will scan convert the edge by interpolating the color of a point P on the edge from the color C1,C2 at V1, V2 respectively. What is the color at P as a function of C1,C2,V1,V2 and P?

4.     Clipping and modeling: [4 marks] Describe a clipping algorithm (pseudo-code) that would return the fragment of a polygon inside a viewport as shown in the figure below. You may use as function calls:

 P’=trans(tx,ty,P) P’=rot(ang,P) P’[]=clip(left,right,top,bottom,P[])