The University of Sheffield
Department of Computer Science

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 computer-aided 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
  • to provide a comprehensive theoretical and practical approach to the foundation topics in three-dimensional 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 data-structured 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 real-world 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 three-dimensional 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 Z-buffer
  • Anti-aliasing
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 ( by Joey de Vries
  • Anton's OpenGL 4 Tutorials (
  • 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, Addison-Wesley, 7th edition, 2009.
  • Or: John Kessenich, Graham Sellers, Dave Shreiner. OpenGL Programming Guide: The Official Guide to Learning OpenGL, Version 4.5 with SPIR-V Paperback (ninth edition), Addison Wesley, 2016
  • A H Watt, 3D Computer Graphics (third edition), Addison-Wesley, 2000.
  • immersive linear algebra by J. Ström, K. Åström, and T. Akenine-Mö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