Computer graphics is concerned with the creation of synthetic images and virtual worlds. This unit introduces the essential algorithms, theory and programming concepts necessary to generate interactive 2D and 3D graphics. Students will gain practical experience using the industry standard OpenGL API to develop their own interactive graphics applications. The topics covered form the basis of core knowledge necessary for developing applications in scientific visualisation, virtual reality, visual special effects and computer games.
At the completion of this unit students will have -
A knowledge and understanding of:
- mathematical representations of basic geometric primitives in Euclidean space, such as points, lines, polygons and parametric curves;
- how to use homogeneous co-ordinates and transformations on geometric objects in two and three dimensions.
- how to combine multiple transformations efficiently;
- orthographic, parallel and perspective projections and their related homogeneous transformations;
- appropriate data structures for hierarchical representation of polygonal datasets;
- rasterisation algorithms for drawing in frame buffers;
- the use of Quaternions to represent object rotation;
- a synthetic camera model for viewing and projecting of two and three-dimensional geometry;
- algorithms for hidden surface removal and backface elimination. The capacity to analyse the space and time complexity of these algorithms to determine the most appropriate in a given situation;
- BRDF Shading models such as Lambert, Phong, Blinns Phong, Torrance-Sparrow-Blinn-Cook-Beckmann, Oren-Nayar;
- textures and texture mapping;
- basic knowledge of aliasing theory;
- interpolative shading models. Shadow algorithms. Local and global illumination models;
- the OpenGL state-machine, GPUs and graphics pipline.
Developed attitudes that enable them to:
- understand the role and value of visual communication in the arts and sciences;
- appreciate the uses and application of interactive, real-time graphics and software rendering.
Developed the skills to:
- program basic interactive graphics applications in OpenGL;
- apply computer graphics theory and algorithms to the design of visual computing applications.
Examination (3 hours): 70%; In-semester assessment: 30%
CSE3313, DGS3622, FIT3005, GCO3817