*Lecturers: Dr N.A. Dodgson and Dr A.F. Blackwell*

(`nad@cl.cam.ac.uk` *and* `afb21@cl.cam.ac.uk`)

*No. of lectures:* 16

*Prerequisite course: Computer Graphics and Image Processing*

**Aims**

This course will develop an understanding of three-dimensional
modelling and rendering techniques to a deeper level
than the Part IB *Computer Graphics and Image Processing*
course. It will facilitate the design and analysis of user interfaces.

**Lectures**

Part A. 3D modelling [8 lectures]

**Revision.**Revision of the ray tracing, polygon scan conversion, and line drawing methods of making images from 3D models; the pros and cons of each approach. [0.3 lecture]**The polygon.**Drawing polygons. Hardware speed-ups. Polygon mesh management: data structures. [0.5 lecture]**Other geometric primitives.**Plane, sphere, cylinder, cone, box, disc, torus. Ray intersection calculations for ray tracing. Calculating the normal. Converting the primitives into polygons for use in polygon scan conversion. [1.2 lecture]**Splines.**Revision of Bezier curves and surfaces. B-splines, from uniform, non-rational B-splines through to non-uniform, rational B-splines (NURBS). [2 lectures]**Subdivision surfaces.**[1 lecture]**Other ways to create more complex geometry.**Generative models: extrusion, revolution, sweeping, generalised cylinders. Constructive solid geometry (CSG): set theory applied to solid objects. Implicit surfaces and voxels: 3D pixels and the marching cubes algorithm. [2 lectures]**Lighting.**Revision of the basic diffuse + specular + ambient approximation. Radiosity: solving the inter-object diffuse reflection equations to produce more realistic images. [1 lecture]

Part B. Human-computer interaction [8 lectures]

**Introduction:**cycle of dialogue. The human virtual machine: Hick's Law, model human processor, Fitts' Law, power law of practice.**System evaluation:**usability analysis, GOMS, keystroke level modelling. Conceptual design and mental models.**User interface design:**cognitive walkthrough, design and evaluation of user trials.**Novel user interfaces.**

**Objectives**

On completing the course, students should be able to

- produce equations for each geometric primitive, derive a
ray/primitive intersection algorithm for each, describe how each can
be approximated by polygons
- define NURBS basis functions, understand the use of NURBS curves
and surfaces in 2D and 3D modelling, explain why NURBS are used in
preference to other curve and surface specification mechanisms
- describe and explain how to use generative models, constructive
solid geometry, implicit surfaces, voxel rendering and subdivision
surfaces; describe how each representation can be converted to
polygons
- explain the radiosity algorithm
- describe the human virtual machine and derive quantitative models
from it
- use psychological models to analyse an interactive system
- apply a range of techniques to predict the behaviour of user
interfaces
- design and undertake an experiment to evaluate a novel user
interface

**Recommended books**

Foley, J.D., van Dam, A., Feiner, S.K. & Hughes, J.F. (1990). *Computer Graphics: Principles and Practice*. Addison-Wesley (2nd ed.). [3DM]

Rogers, D.F. & Adams, J.A. (1990). *Mathematical Elements for
Computer Graphics*. McGraw-Hill (2nd ed.). [3DM]

Newman, W.M. & Lamming, M.G. (1995). *Interactive System
Design*. Addison-Wesley. [HCI]

Borenstein, N.S. (1991). *Programming as if People Mattered*.
Princeton. [HCI]