University of Surrey - Guildford

Registry > Module Catalogue
View Module List by A.O.U. and Level  Alphabetical Module Code List  Alphabetical Module Title List  Alphabetical Old Short Name List  View Menu 
2010/1 Module Catalogue
 Module Code: COM2012 Module Title: 3D COMPUTER GRAPHICS
Module Provider: Computing Short Name: CS293
Level: HE2 Module Co-ordinator: KILNER JJ Mr (Elec Eng)
Number of credits: 10 Number of ECTS credits: 5
Module Availability
Spring Semester

Assessment Pattern

Assessment Pattern


Unit(s) of Assessment


Weighting Towards Module Mark( %)


Lab Based Test (individual):


The laboratory assessment will test the practical skills of students covering the main concepts of the module




Assignment (individual):
An individual practical project




Qualifying Condition(s) 


A weighted aggregate mark of 40% is required to pass the module.





Module Overview

Module Overview


This module introduces the theory and practice of 3D graphics programming, using JOGL (Java bindings for OpenGL) as the tool. It explains the principles behind 3D graphics, and shows how to use the various data structures and functions of the OpenGL library to construct and render 3D scenes.




COM1017, COM1018, COM2003


Module Aims

Module Aims


This module aims to provide students with the knowledge and experience they need to use 3D graphics in their systems. It uses Java as the primary teaching language, but the techniques learnt are applicable to many other languages.



Learning Outcomes

On successful completion of this module the student should :


1. understand the principles of 3D graphics programming;


2. understand the principles of OpenGL


3. know how to set-up an appropriate OpenGL environment for 3D graphics rendering


4. know how to render 3D shapes using OpenGL


5. know how to control basic rendering options in OpenGL


6. know how to set surface material options and lighting options for rendering of realistic 3D objects using OpenGL
Module Content
    • The basic principles of the 3D graphics pipeline


      • Geometry processing


      • Rendering


    • Mathematical foundations of 3D programming


      • Vector representation of 3D data


      • Matrix transformations and frames of reference


    • An introduction to the OpenGL API using JOGL


      •  OpenGL, GLU and GLUT


      •  Using JOGL to build OpenGL applications with swing/awt


    • The OpenGL state machine – managing state


      •  OpenGL programming style


      • Error handling and debugging OpenGL


    • The Model View Matrix and viewport control


      •  Resizing the viewport


      • Changing the viewing location


    • Colour and lighting


      •  Adding colour to an object


      •  Surface reflectance properties


      •  Surface normals


      • Lights and lighting


    • OpenGL buffers


      • The framebuffer, depthbuffer and stencil buffer


      •  Off-screen rendering and full-screen effects


    • Principles of animation


      •  Render updates and double-buffering


    • Anti-aliasing and blending functions


      • Alpha blending


      • Anti aliasing


    • Texture mapping


      •  UV co-ordinates


      • Texture mapping


      • Mip-mapping


Methods of Teaching/Learning



Two lectures and two hours of lab session per week comprising 22 lectures and 11 lab


sessions over eleven weeks and one revision lecture.



Selected Texts/Journals

Required: none


Recommended Reading (category B):


  • Shreiner: OpenGL Programming Guide, 7/e, Addison Wesley (2010)



Other Resources:


See Ulearn module for useful web links.


Last Updated

updated 03 FEB 2011 jg