BSc Computer Science with Industrial Experience / Course details

Year of entry: 2022

Course unit details:
Graphics & Virtual Environments

Unit code COMP37111
Credit rating 10
Unit level Level 3
Teaching period(s) Semester 1
Offered by Department of Computer Science
Available as a free choice unit? Yes


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.


Unit title Unit code Requirement type Description
Introduction to Visual Computing COMP27112 Pre-Requisite Compulsory
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 (COMP27112). 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.

Learning outcomes

  • be able to analyse requirements of 3D modelling problems and select appropriate combinations of modelling techniques

  • be able to describe and compare CAD, Generative and Captured approaches to creating 3D models with respect to their fidelity and time/space constraints

  • be able to describe how the rendering equation acts as a mathematical representation of illumination in the real world

  • be able to compare different computational approximations to the rendering equation with respect to their visual fidelity and computational complexity

  • be able to analyse rendering problems to create novel solutions by combining or modifying existing computational approximations


Introduction and overview (1)
Introduction to the course and to the laboratory project. Applications of modelling techniques and image synthesis.

Non-polygonal modelling techniques (1)
Procedural modelling: fractal geometry, modelling with fractals, particle systems, L-systems.

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

The Rendering Equation and Ray-tracing (1)
The Rendering Equation, basic ray tracing, primary and secondary rays, shadow feeler rays, reflection and transparency. 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 (1)

Spatial Enumeration and culling (2)
Spatial enumeration, grids, AABBs, HBBs. Level of detail.Examples of model complexity, the need for interaction. Culling techniques:

back-face, view frustum, portals, occlusion culling.

Teaching and learning methods


11 in total, 1 per week


There will be one lab exercise programming project.

Employability skills

Analytical skills
Project management
Problem solving

Assessment methods

Method Weight
Written exam 70%
Practical skills assessment 30%

Feedback methods

Face to face feedback and marking in programming laboratories.

Recommended reading

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

Study hours

Scheduled activity hours
Lectures 11
Independent study hours
Independent study 89

Teaching staff

Staff member Role
Stephen Pettifer Unit coordinator

Additional notes

Course unit materials

Links to course unit teaching materials can be found on the School of Computer Science website for current students.

Return to course details