Graphics Programming - CM2030

Graphics Programming - CM2030

Computer graphics is a critical application area in computer science. Displaying, processing and generating still and moving images using computational systems is necessary for video games, digital photography and computational art. We interact with computer graphics systems every day. This module builds on some of the programming and mathematical techniques you have seen earlier in the programme and will prepare you for more advanced areas such as virtual reality and image signal processing seen later in the programme.

This module aims to show you how to work with images in a variety of ways. You will learn how to synthesise graphics and how to process visual signals. You will learn about the mathematical ideas that underpin digital representations of graphics; how digital media files represent graphics, and how to handle and manipulate them; and the basics of working with simulated physics and 3D graphics.


Topics covered will be:

  • Introduction to Graphics
  • Vectors and animation
  • Forces and Physics
  • Physics with Matter.js
  • Generative techniques: randomness and noise
    • apply randomness and noise to create simple generative systems
  • Generative techniques: sine and fractals
    • implement generative systems using additive synthesis
    • implement recursive systems to make fractals
  • 3D graphics
    • use 3D primitives, lights and materials to program simple animations
    • implement 3D animations by manipulating the camera parameters
  • Colours, images, pixels
    • access and manipulate pixels directly
  • Image processing
    • use convolution to apply advanced filters on images
    • implement an Instagram-type image processing filter
  • Computer vision
    • explain what computer vision is and what its applications and challenges
    • describe what colour tracking and background subtraction is
    • use frame differencing to track movement
    • describe some advanced computer vision algorithms

Resources

"The module will draw on a number of different, largely web-based, public resources as well as the resources produced as bespoke material for this module."

Essential reading

"The standard text book(s) for the module will be:"

  • 3D Math Primer for Graphics and Game Development, Fletcher Dunn, A K Peters/CRC Press, ISBN-10: 1568817231, 2011

  • Mathematics for Computer Graphics (Undergraduate Topics in Computer Science), John Vince, Springer, ISBN-10: 1447162897, 2014


Pedram Badakhchani Useful links:

My p5 sketches:

https://editor.p5js.org/pedbad/collections

My codepen:

https://codepen.io/pedbad