Aims of the course:
The aims of this module are: To give students a good understanding of basic concepts of computer graphics; introduce them to the fundamental principles of the mathematical principles used for computer generated imagery, shading and light approximations; and illustrate different geometry representation and modelling technique.
To teach and enable students to develop customised graphics pipelines skills within the OpenGL GLSL language; to enable students to develop custom shading solutions to small application problems.
To help students gain a good understanding of, and ability to use, programmable graphics pipelines; familiarise students with common graphics primitives and associated operations.
To teach various design and implementation solutions for computer graphics problems; illustrate the practical effects of the different implementation choices; and illustrate their practical use in developing shader pipelines for real application problems.
1) Knowledge and Understanding upon successful completion of the module, a student will: Understand basic principles of computer generated imagery. Understand the basic and some advanced issues related to customising programmable shading pipelines - such as vertex, fragment, and geometry shading stages. Understand the basic ideas behind surface geometry representation, 3D geometry, polyhedral rendering and rat-based image generation methods. Differentiate specifications of abstract concepts from particular implementation techniques. Learn about fundamental algorithms associated with computer graphics.
2) Intellectual and Practical skills upon successful completion of the module, a student will: Be able to solve a given computer graphics problem by going through the basic steps of rendering pipeline specification, algorithm selection, analysis and implementation. Be able to competently read 'foreign' OpenGL GLSL source code and computer graphics pipeline diagrams. Have developed solid understanding of the mathematical principles of computer graphics and the ability to put in practice the acquired knowledge and understanding in relatively simple case studies.
To assemble a visual presentation on a complex scientific topic and to explain it orally.
To relate conceptual problems to technological prototype applications and vice versa.
This course covers the fundamental principles of computer graphics and their use in prominent applications. The lectures include:
Device independent graphics: Raster and vector devices, world coordinates, the normalisation transformation, output primitives, input primitives. Polygon rendering: 3D data base representation, projection onto a viewing surface, transformation of graphical scenes, homogenous co-ordinates, affine transformations for animation.
3D geometry: clipping and containment in 3D convex objects, splitting concave objects. Texture mapping and anti-aliasing.
Shading planar polygons: Gouraud shading, Phong shading. Representing Colours: tri-stimulus model, RGB model, CIE definition space, perceptual colour spaces.
Ray Tracing: Ray/object intersection calculations, secondary rays, shadows, reflection and refraction, object space coherence, ray space coherence.
Radiosity: Modeling ambient light, form factors, specular effects, shooting patches, computational efficiency. Geometric Warping and Morphing. Special Visual Effects: particle systems for fire smoke and water, inverse kinematics in animation, non-photorealistic rendering.
First year Mathematical Methods (course 145) or equivalent.
- lectures with slides and videos
- discussion in classroom and Piazza
- classroom tutorials in the computing lab
- video recordings of lectures
- extensive coursework with assessed and non-assessed parts. The coursework solidifies the theoretical content of the lectures through practical programming tasks in OpenGL GLSL within a purpose-build shader pipeline tool deployed in the computing lab.
*This is a level 6/H course
3rd ed., AK Peters
Cambridge University Press
7th edition /, Pearson,