Programming for 3D (G6080)

15 credits, Level 6

Autumn teaching

This course will provide an intensive introduction to 3D computer graphics (CG) modelling and rendering. This will include many topics, such as basic 3D geometry transformation, mesh/geometric descriptions of CG objects, shading and lighting. On completion of this module, you will be able to:

  • Understand the main approaches used for 3D graphics (i.e. ray tracing and raster polygon).
  • Understand basic physical principles of light and perceived colour, and the simplifications made in CG to represent them.
  • Understand basic mathematical principles (i.e. Cartesian systems of reference, vector analysis, transformation matrices), applied in the context of CG (i.e. geometry models, collision detection, shading, texturing, 3D interaction).
  • Transform the models above into C++ programs, either for photorealistic rendering or interactive 3D systems.
  • Gain understanding on general Object-Oriented programing principles (UML diagrams, design patterns, etc.), very common in most game engines and programming suites.

Teaching and assessment

We’re currently reviewing teaching and assessment of our modules in light of the COVID-19 situation. We’ll publish the latest information as soon as possible.

Contact hours and workload

This module is approximately 150 hours of work. This breaks down into about 44 hours of contact time and about 106 hours of independent study. The University may make minor variations to the contact hours for operational reasons, including timetabling requirements.

This module is running in the academic year 2021/22. We also plan to offer it in future academic years. However, we are constantly looking to improve and enhance our courses. There may be changes to modules in response to student demand or feedback, changes to staff expertise or updates to our curriculum. We may also need to make changes in response to COVID-19. We’ll make sure to let our applicants know of material changes to modules at the earliest opportunity.


This module is offered on the following courses: