# Gwybodaeth Modiwlau

Module Identifier
CS32310
Module Title
2016/2017
Co-ordinator
Semester
Semester 1
Pre-Requisite
Other Staff

#### Course Delivery

Delivery Type Delivery length / details
Lecture 19 x 1 Hour Lectures
Practical 8 x 2 Hour Practicals

#### Assessment

Assessment Type Assessment length / details Proportion
Semester Assessment 3000 word report and accompanying source code and data:  Practical assignment with written report  100%
Supplementary Assessment 3000 word report and accompanying source code and data:  Practical assignment with written report  100%

### Learning Outcomes

On successful completion of this module students should be able to:

1. Select and deploy appropriate algorithms, programming languages and libraries behind 3D computer graphics.

2. Describe and apply the main concepts behind 3 dimensional graphics software libraries.

3. Demonstrate an awareness of the variety of hardware and software technologies that allow the creation of graphics applications.

4. Use vectors and matrices to perform 3-D transformations, including perspective and orthographic projections.

5. Describe and critique different lighting models and rendering techniques.

6. Describe and critique algorithms for modeling a variety of objects / visual phenomena.

### Brief description

This course provides students with an understanding of the theoretical foundations of computer graphics and practical 3D graphics programming skills

### Aims

This module provides the basis for computer graphics, allowing students to start work in the area of computer graphics. Students are introduced to topics that include:
• The underlying mathematics of 3-dimensional graphics modeling and display techniques
• 3-dimensional geometric coordinate transformations.
• Lighting models including local and global illumination techniques
• Interactive graphics programming

### Content

1. Introduction: Course outline, recommended reading / resources, overview of 3D graphics, overview of WebGL. Practical - Introduction to WebGL (2 lecture + 1 practical).

2. Core mathematics for 3D graphics: Trigonometry, matrix and vector algebra. Basic 3D transformations, matrix representation and homogeneous coordinates. Composite transformations. Clipping and z-buffer hidden surface removal. Practical - transformations in WebGL (3 lectures + 1 practical).

3. Lighting and Shading: Reflection models (ambient, diffuse, specular), light types (directional, point, cone), coloured lights, multiple lights, light attenuation. Practical - lighting in WebGL ( 2 lectures + 1 practical).

4. Texture mapping: Wrapping, sampling, interpolation and anti-aliasing. Problems including perspective distortion, orientation dependence, shared vertices. Practical - texture mapping in WebGL (2 lectures + 1 practical).

5. Buffers in WebGL: render buffer, depth buffer, stencil buffer, frame buffer, usage and setting for each and example algorithms / applications discussed. Practical - using WebGL buffers (2 lecture + 1 practical).

6. Color and depth: perception of colour, colour spaces, colour display. Alternative hidden surface removal algorithms for e.g. transparency sorting, Painter's algorithm, BSP trees etc. Practical - linked object modeling and animation in WebGL (1) (3 lectures + 1 practical).

7. Advanced modeling: modeling/ rendering of difficult objects such as fur, plants, fire including the use of L-systems and particle systems. Practical - linked object modeling and animation in WebGL (2) (3 lectures + 1 practical).

8. Ray-tracing: ray-generation, ray-surface intersection, recursive ray tracing. Practical - WebGL particle systems (1) (2 lectures + 1 practical).

9. Revision lecture (1 lecture).

### Module Skills

Skills Type Skills details
Application of Number Yes, computer graphics involves a lot of maths (vectors, matrices etc).
Communication Written reports on lab exercises (lab book).
Improving own Learning and Performance Class test designed as way of highlighting the students own learning / deficiencies in knowledge.
Information Technology All work is IT related (web, graphics etc). Also use word processing for reports.
Personal Development and Career planning Practical exercises can be used as the basis for a portfolio of graphics programming work.
Problem solving Solving problems in development of algorithms and code structure for graphics
Research skills Reading around subject, proper citations etc. in practical reports.
Subject Specific Skills Graphics programming using WebGL.

### Notes

This module is at CQFW Level 6