Advanced Graphics

*Lecturer: Dr N.A. Dodgson*
(`nad@cl.cam.ac.uk`)

*No. of lectures:* 8

*Prerequisite course: Computer Graphics and Image Processing*

**Aims**

The main aim of the course is to provide students with a solid grounding in a variety of three-dimensional modelling mechanisms. The course also imparts a deeper understanding of rendering techniques.

**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 for modelling arbitrary 3D geometry.**Splines are the industry standard 3D modelling mechanism. 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.**An alternative mechanism for representing arbitrary 3D geometry. Pros and cons when compared to NURBS. [1 lecture]**Other ways to create 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]

**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
- 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

**Recommended books**

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

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

Warren, J. & Weimer, H. (2002). *Subdivision Methods for Geometric
Design*. Morgan Kaufmann.