The University of Southampton

COMP3214 Principles and Practice of Computer Graphics

Module Overview

The manipulation and display of geometric information is at the heart of many computer applications and graphical output plays an important part of modern Human - Computer interactions. The aim of this course is to show how to generate, manipulate and display synthetic scenes. The module concentrates on the generation of 3D images in a Computer Games context. The module covers the underlying theory and algorithms, as well as providing opportunity to practice the use of these techniques in an OpenGL Environment. Maths up to basics calculus, matrices and vectors. Programming in C++, using an Object Oriented interface but not necessarily generating them. The module is not about human computer interfaces, windowing systems, specific API's or 3D content creation tools like Blender or Maya 3D.

Aims and Objectives

Module Aims

The aim of this course is to show how to generate, manipulate and display synthetic scenes.

Learning Outcomes

Knowledge and Understanding

Having successfully completed this module, you will be able to demonstrate knowledge and understanding of:

  • The challenges of producing realistic 3D computer graphics
  • The maths behind the coordinate systems and transforms used in 3D computer graphics
  • The physics behind light, illumination and shading
  • Low level techniques for rendering lines, polygons and text, and solving hidden surface visibility
  • Physics based models of games and simulations
Subject Specific Practical Skills

Having successfully completed this module you will be able to:

  • Program 3D applications using OpenGL, using shaders on modern 3D hardware
Subject Specific Intellectual and Research Skills

Having successfully completed this module you will be able to:

  • Model shapes from a fundamental basis, such as polygon meshes and cubic parametric curves


- A brief introduction to the capabilities of a popular graphics package. Introduction to primitive graphics elements, SDL, Direct X etc. - Programming in OpenGL, specifying shapes, geometry, viewing, animation and user interaction. Off-line rendering with ray tracing, radiosity and renderman. Emphasising the shader approach including the use of vertex, geometry and fragment shaders. - Manipulating pixels, line drawing and Bresenhams' algorithms. Arbitrary curves. Circles, Ellipses and filling areas. Flood Fill for polygon's. Scan converting polygons. Scan converting polygons. Smooth curves and splines, Beizier Curves. Pix Blit and its related techniques. - Device coordinates, Viewports and Windows. Transformations, translation, rotating scaling and shear. Device independent and device coordinates and graphics pipeline. - Clipping including the Cohen-Sutherland algorithm. - Introduction to vectors and homogeneous coordinates. Derivations of transformations and matrix representation. Show how transforms combine and how they are put together. Three dimensional transformations, Coordinate systems. The GLM maths library. - Concept of a synthetic camera and the perspective projection. 3-D Clipping and the view volume. - 3-D representation. Hidden Line and Hidden Surface removal using Z-Buffers. Introduction to BSP Trees. - Real world model for three D lighting. The intensity function. Gouraud and Phong Shading as approximations. Examples of different shadeing models. - Smooth curves, splines and surfaces, specifically Bezier Curves, C-Splines, Bezier Surfaces. Introducing tessellation shaders and rendering surfaces by subdivision. Nurbe curves and surfaces will also be discussed. - Advanced lighting and reflection. Texture mapping, Mip Maps and Bump mapping. Shadow maps and environment maps. Noise, especially Perlin noise will be discussed. - Physics based modelling of movement, collisions and their after effects. A simple physics engine will be described.

Learning and Teaching

Completion of assessment task24.5
Follow-up work18
Preparation for scheduled sessions18
Wider reading or practice43.5
Total study time150

Resources & Reading list

Dave Shreiner, Graham Sellers, John M. Kessenich, Bill M. Licea-Kane (2013). OpenGL Programming Guide, 8th Edition: The Official Guide to Learning OpenGL, Version 4.3. 

Angel E and Shreiner D (2011). Interactive Computer Graphics: A top-down approach with Shader-based Open GL. 

Mike Bailey and Steve Cunningham (2011). Graphics Shaders: Theory and Practice. 

Hughes et al. (2013). Computer Graphics: Principles and Practice: Principles and Practices. 

Alexey Boreskov and Evgeniy Shikin (2013). Computer Graphics: From Pixels to Programmable Graphics Hardware. 


Assessment Strategy

Coursework 4 will be double marked as judgement on the artistic merit of the submission is subjective.


MethodPercentage contribution
Examination  (1.5 hours) 50%
Introduction 10%
Introduction 5%
Laboratory 10%
Simulation 25%


MethodPercentage contribution
Coursework assignment(s) %
Examination %

Repeat Information

Repeat type: Internal & External

Linked modules

ELEC1201 OR COMP1202

Share this module Share this on Facebook Share this on Google+ Share this on Twitter Share this on Weibo

We use cookies to ensure that we give you the best experience on our website. If you continue without changing your settings, we will assume that you are happy to receive cookies on the University of Southampton website.