Computer Science and Mathematics (3 Years) [BSc]

Advanced Computer Graphics

Unit code: COMP37111
Credit Rating: 10
Unit level: Level 3
Teaching period(s): Semester 1
Offered by School of Computer Science
Available as a free choice unit?: Y



Additional Requirements

Students who are not from the School of Computer Science must have permission from both Computer Science and their home School to enrol.


This Course Unit covers the principles of modern techniques for Computer Graphics modelling and image synthesis, on the assumption that students have already completed the introductory Computer Graphics course (COMP20072). Its principal aim is to introduce students to the ever-expanding repertoire of techniques for defining and rendering images of 3D model data. Particular attention is focussed on the increasing requirements for complex rendering and interaction to occur in real-time.


This course follows on from COMP27112, the 2nd year course "Computer Graphics, and Image Processing", and looks at more advanced topics in Computer Graphics, such as large-scale polygonal modelling techniques, capturing geometry from scanners and cameras, procedural modelling, and sophisticated global and real-time rendering techniques. The course is supported by a 10-week laboratory project in OpenGL.

Teaching and learning methods


11 in total, 1 per week


There will be one lab exercise programming project.

Learning outcomes

Learning outcomes are detailed on the COMP37111 course unit syllabus page on the School of Computer Science's website for current students.

Employability skills

  • Analytical skills
  • Innovation/creativity
  • Project management
  • Problem solving
  • Research

Assessment methods

  • Written exam - 75%
  • Practical skills assessment - 25%


Introduction and overview (1)

Applications of advanced image synthesis: visualization, animation, games, CAD systems, simulation. The classical graphics pipeline rendering: geometry, tessellation, modelling and viewing transformations, clipping, screen mapping, rasterizing. Global illumination: starting with the image plane, ray tracing. Local versus global illumination.

Model acquisition (2)

Laser scanning; surface fitting; occlusions and hole-filling; acquisition of geometry from photographs and video.

Non-polygonal modelling techniques (2)

Procedural modelling: fractal geometry, modelling with fractals, particle systems, L-systems.

Non-photorealistic rendering (1)

Approaches to rendering that, instead of striving for traditional photorealism, emphasise information content, visualization and understanding. Early work by Gooch & Gooch, and an overview of more recent techniques.

Introduction to global illumination: Ray Tracing (1)

What is GI, why is it important, when and how is it used? Basic ray tracing, primary and secondary rays, shadow feeler rays, reflection and transparency. Recursive algorithm. RT signature. Real-time ray tracing. Monte Carlo ray tracing. Importance sampling, variance reduction methods. Path tracing, bidirectional ray tracing.

Global illumination: Radiosity (1)

Principles: energy exchange between surfaces, implementation approaches, rendering techniques.

Volume rendering (2)

Programmable rendering (1)

The GPU and its architecture. Vertex and pixel shaders.

Real-time rendering (1)

Examples of model complexity, the need for interaction. Culling techniques: back-face, view frustum, portals, occlusion culling. Spatial enumeration, grids, AABBs, HBBs. Level of detail.

Recommended reading

COMP37111 reading list can be found on the School of Computer Science website for current students.

Feedback methods

Face to face feedback and marking in programming laboratories.

Study hours

  • Lectures - 11 hours
  • Independent study hours - 89 hours

Teaching staff

Toby Howard - Unit coordinator

▲ Up to the top