skip to content

Department of Computer Science and Technology

Principal lecturer: 
Students: 
Part IA CST, Part IB CST 50%
Term: 
Michaelmas term
Course code: 
Graphics
Hours: 
8
Suggested hours of supervisions: 
2

Aims

To introduce the necessary background, the basic algorithms, and the applications of computer graphics and graphics hardware.

Lectures

  • Background. What is an image? Resolution and quantisation. Storage of images in memory. [1 lecture]
  • Rendering. Perspective. Reflection of light from surfaces and shading. Geometric models. Ray tracing. [2 lectures]
  • Graphics pipeline. Polygonal mesh models. Transformations using matrices in 2D and 3D. Homogeneous coordinates. Projection: orthographic and perspective. [1 lecture]
  • Graphics hardware and modern OpenGL. GPU rendering. GPU frameworks and APIs. Vertex processing. Rasterisation. Fragment processing. Working with meshes and textures. Z-buffer. Double-buffering and frame synchronization. [2 lectures]
  •  
  • Human vision, colour and tone mapping. Perception of colour. Tone mapping. Colour spaces. [2 lectures]

Objectives

By the end of the course students should be able to:

  • understand and apply in practice basic concepts of ray-tracing: ray-object intersection, reflections, refraction, shadow rays, distributed ray-tracing, direct and indirect illumination;
  • describe and explain the following algorithms: z-buffer, texture mapping, double buffering, mip-map, and normal-mapping;
  • use matrices and homogeneous coordinates to represent and perform 2D and 3D transformations; understand and use 3D to 2D projection, the viewing volume, and 3D clipping;
  • implement OpenGL code for rendering of polygonal objects, control camera and lighting, work with vertex and fragment shaders;
  • describe a number of colour spaces and their relative merits.
  • explain the need for tone mapping and colour processing in rendering pipeline.

Recommended reading

* Shirley, P. and Marschner, S. (2009). Fundamentals of Computer Graphics. CRC Press (3rd ed.).

Foley, J.D., van Dam, A., Feiner, S.K. and Hughes, J.F. (1990). Computer graphics: principles and practice. Addison-Wesley (2nd ed.).

Kessenich, J.M., Sellers, G. and Shreiner, D (2016). OpenGL Programming Guide: The Official Guide to Learning OpenGL, Version 4.5 with SPIR-V, [seventh edition and later]