Module Information
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
- 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
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