COMP30020 Computer Graphics I

Academic Year 2021/2022

Introduction to modern computer graphics. Course material includes basics of human vision, imaging and display technologies, Cartesian coordinate systems, linear algebra and analytic geometry, digital representation of images, mathematical representations of lines, curves and filled objects in 2D and 3D, lighting & shading models, textures, matrix representation of geometric transformations, projective transformations, homogenous coordinates and perspective projection, the projective pipeline, animation, blending and compositing.

Show/hide contentOpenClose All

Curricular information is subject to change

Learning Outcomes:

The Student will acquire knowledge of fundamental graphics techniques and gain experience in programming graphical applications.

Indicative Module Content:

Physics & Biology of Vision (light, colour, HVS, visual phenomena)
Maths in Graphics (coord, trigonometry, primer linear algebra, matrices, C++ implementation)
GUI design and programming (modal/non model interfaces, widgets, events, GUI toolkits, GLUT and Qt API)
Analytic Geometry (projection, 2D curves, equations for lines, quadratic curves, intersection)
Curves (polynomial curve, matrix form, blending functions, hermite and Bezier curves, de Casteljau Algorithm)
3D Geometry & Raytracing (C++ ray tracing class)
Lighting & Shadows, Textures
Geometric modelling (CSG, polygons, polyhedra & platonic solids, shading and rendering)
Projective rendering & transformation matrices (painters algorithm, z-buffering, changing bases, linear transformations e.g. rotation, scaling..., projection)
Homogeneous coordinates & perspective projection
Coordinate systems & projective rendering
OpenGL pipeline & projective hardware
Introduction to shaders (optional)
Hierarchical animation, scene graphs, physics simulation

Student Effort Hours: 
Student Effort Type Hours
Autonomous Student Learning








Approaches to Teaching and Learning:
A set of lectures developing step by step the general principle behind graphics rendering using the linear algebra toolbox. The class will be exposed to a number of coding demonstration to illustrate theoretical frameworks. A set of labs will be proposed to construct iteratively a projective rendering pipeline and ray tracer using an OOP. 
Requirements, Exclusions and Recommendations
Learning Requirements:

Linear Algebra
Object Oriented Programming

Learning Recommendations:

Data Structures & Algorithms
C++ Programming Language

Module Requisites and Incompatibles
Not applicable to this module.
Assessment Strategy  
Description Timing Open Book Exam Component Scale Must Pass Component % of Final Grade
Class Test: 3-4 small problems, duration 1h50 Week 12 n/a Graded No


Continuous Assessment: Practical work and individual assessments throughout course Varies over the Trimester n/a Graded No


Carry forward of passed components
Remediation Type Remediation Timing
In-Module Resit Prior to relevant Programme Exam Board
Please see Student Jargon Buster for more information about remediation types and timing. 
Feedback Strategy/Strategies

• Feedback individually to students, post-assessment
• Group/class feedback, post-assessment

How will my Feedback be Delivered?

Not yet recorded.

Timetabling information is displayed only for guidance purposes, relates to the current Academic Year only and is subject to change.
Lecture Offering 1 Week(s) - Autumn: All Weeks Mon 10:00 - 10:50
Lecture Offering 1 Week(s) - Autumn: All Weeks Wed 15:00 - 15:50
Practical Offering 1 Week(s) - Autumn: All Weeks Tues 16:00 - 17:50