COM3503 3D Computer Graphics
Summary 
This module is an introduction to the techniques used in
modern 3D computer graphics. It deals with fundamental
techniques that are the basis of work in a range of industries, e.g. entertainment
and computeraided design. Both basic and advanced topics concerned with
the production of images of abstract 3D objects are covered, including: 3D representations and manipulations
in graphics, light reflection models, realism techniques
such as shadows and textures, ray tracing and 3D animation.
Students should be aware that there are limited places available on this course. 
Session 
Autumn 2019/20 
Credits 
10 
Assessment 
Formal examination (2 hours) [60%].
Programming assignment [40%]. 
Lecturer(s) 
Dr Steve Maddock 
Resources 

Aims 
 to provide a comprehensive theoretical and practical
approach to the foundation topics in threedimensional
computer graphics; and
 to make use of a graphics API (application
programming interface) for the construction of 3D
computer graphics software

Objectives 
By the end of this course the students should:
 be able to use matrices to transform (hierarchical)
objects in 3D coordinate systems;
 be able to describe and apply a 3D viewing pipeline
to display datastructured objects, modelled in a world
of real numbers, on a discrete, raster screen device;
 be able to reason about the most suitable modelling
techniques to use for particular realworld
applications;
 be able to implement standard 3D shading and
rendering techniques using a library of graphics
routines;
 understand and be able to describe and discuss a
range of techniques for increasing the realism of
rendered scenes;
 understand and be able to compare and contrast
advanced rendering techniques;
 be able to describe and discuss a range of computer
animation techniques;
 understand and be able to implement a range of
threedimensional computer graphics algorithms;
 be able to describe how computer graphics
techniques are used in a variety of application areas in the entertainment industry.

Content 
Coordinate systems and transformations [2
lectures]
Building and Representing Objects [ 3 lectures ]
The graphics pipeline [ 1 lecture ]
Rendering [ 3 lectures ]
 Incremental shading
 Hidden surface removal
 The Zbuffer
 Antialiasing
Simulating 3D Reality [ 7 lectures ]
 Simple light object interaction
 Textures and shadows
 Advanced light object interaction
Computer Animation [ 3 lectures ]
Review [1 lecture] 
Restrictions 
Students from departments other than Computer
Science will need to demonstrate skills in imperative
programming, software design and data structures and their
applications, as well as experience with vector and matrix
arithmetic. 
Teaching Method 
In addition to the formal lectures, there will be
approximately 10 hours of practical sessions related to learning OpenGL, as well as online help with the
assignment work. 
Feedback 
Ongoing during lab sessions via online help and in office hours;
Final feedback sheet for the assignment 
Recommended Reading 
 Learn OpenGL (https://learnopengl.com/) by Joey de Vries
 Anton's OpenGL 4 Tutorials (http://antongerdelan.net/opengl)
 Either: D. Shreiner and the Khronos OpenGL ARB Working Group, OpenGL Programming Guide: The Official Guide to Learning OpenGL, Versions 3.0 and 3.1, AddisonWesley, 7th edition, 2009.
 Or: John Kessenich, Graham Sellers, Dave Shreiner. OpenGL Programming Guide: The Official Guide to Learning OpenGL, Version 4.5 with SPIRV Paperback (ninth edition), Addison Wesley, 2016
 A H Watt, 3D Computer Graphics (third edition), AddisonWesley, 2000.
 immersive linear algebra by J. Ström, K. Åström, and T. AkenineMöller
 F. Dunn and I. Parberry, 3D Math Primer for Graphics and Games Development, 2nd edition, A.K.Peters/CRC Press, 2011.
 Vince, J.A., "Mathematics for Computer Graphics (Undergraduate Topics in Computer Science)", (Fifth edition), Springer, 2017

