Exercises for the first supervision
These exercises are drawn from past exam questions.
 [2.3/4] (a) Describe the situations in which it is sensible
to use a wingededged data structure to represent a polygon mesh and,
conversely and, conversely, the situations in which a wingededged
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).
 [3.7/11] (i) Show how to find the first intersection between a
ray and a finitelength, openended cone, centred at the origin,
aligned along the xaxis, for which both ends of the finitelength are
on the positive xaxis (i.e. 0 < x_{min} <
x_{max}).
(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.
(iii) Extend this further to give the normal vector at the
intersection point.
 [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.
(b) Given the above algorithm and an algorithm to find the
intersection of an arbitrary ray with a finitelength open cylinder, a
programmer has two choices for implementing an algorithm to find the
intersection with a finitelength closed cylinder. She could simply
use the finitelength open cylinder primitive and two disc
primitives. Alternatively she could implement the finitelength 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.
 [2003 P9 Q6 (c)] Show how the following object can be
constructed using Constructive Solid Geometry (CSG). You may assume
the following primitives: sphere, cylinder, cone, torus, box. [You are
expected to describe which primitives are needed and how they are
combined but you are not expected to specify accurately all of the
parameters of the primitives.]
 [8.8.2/3] List the three ways of combining objects using
constructive solid geometry (CSG). Describe how an object built using
CSG can be represented using a binary tree. Given the intersection
points of a ray with each primitive in the tree, explain how these
points are passed up the tree by each type of combination node to
produce a list of intersection points for the whole CSG object.
 [1999 P9 Q4 (d)] Explain form factors and view factors in
radiosity. Outline an implementable method of calculating view
factors. Describe how your method might leverage existing hardware
acceleration.
 Explain photon mapping, highlighting the two portions of the algorithm
which show Monte Carlo integration.
 The onering of a vertex is the (usually ordered) set of vertices which
lie exactly one edge away from a given vertex on a polyhedral surface. Given a
vertex V with onering {v_{0},...,v_{n1}},
give a formula for the discrete curvature of the surface at V.
