|Delivery Type||Delivery length / details|
|Lecture||19 x 1 Hour Lectures|
|Practical||8 x 2 Hour Practicals|
|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%|
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.
This course provides students with an understanding of the theoretical foundations of computer graphics and practical 3D graphics programming skills
- 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
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).
|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.|
This module is at CQFW Level 6