Computer Graphics

Draft of the course proposed for Spring 2019

Spring 2019: CCOM4995-023

Description:
The goal of this course is to provide an introduction to computer graphics. The course assumes a good background in programming in imperative language such as C. The topics addressed will cover both fundamentals of the field and implementation on modern hardware and software platforms: fundamentals of image representation, manipulation, storage and display; graphics modeling and rendering in 2d and 3d; animated and interactive graphics. Geometry modeling using linear algebra will be introduced in the class, assuming knowledge of calculus and trigonometry.
Banner
Prerequisites:
  • CCOM3033 Introduction to Computer Programming
  • MATE3152 Calculus II
  • Not prerequisites, but good complementarity with the class: CCOM4065 Numerical Linear Algebra, CCOM3034 Data Structures
Content:
  1. 2D image manipulation
    • Raster image representation
    • Vector graphics and rasterization (e.g. HTML5 canvas)
    • Basic image processing
    • Image file formats
  2. Geometry modeling
    • Introduction to matrix calculus for graphics
    • Geometry modeling and transformations
  3. 3D Graphics
    • 3D graphics engine concepts
    • Object models and data structures
    • Materials (texturing, lighting, effects…)
    • Rendering pipeline and shaders
  4. Animation and Interaction
    • Design of animated graphics
    • Interacting with 2D and 3D scenes
  5. Personalized project
    • Implementation of a computer graphics based software on a subject of your choice
Teaching strategy and ressources:

Concepts and theory presented in lectures and in class discussion. Practice trained through programming laboratories (2D image manipulation, geometry, 3d graphics) and a final integrative project. Programming in Javascript with HTML5 Canvas API for 2D graphics and WebGL and Three.js API for 3D graphics.

Laboratories require computers with OpenGL capable graphic cards and a web browser supporting HTML5 and WebGL.

Textbook:
Additional textbooks:
  • John F. Hughes, Andries van Dam, Morgan McGuire, David F. Sklar, James D. Foley, Steven K. Feiner, Kurt Akeley. Computer Graphics: Principles and Practice (3rd Edition), 2013. ISBN 0321399528.
  • Edward Angel, Dave Shreiner. “Interactive Computer Graphics: A Top-Down Approach with WebGL” (7th Edition, 2014). ISBN 0133574849.
  • Peter Shirley, Steve Marschner, “Fundamentals of Computer Graphics”, 4rd ed, CRC Press, 2015. ISBN 1482229390.
  • Jos Dirksen, Learning Three.js: The JavaScript 3D Library for WebGL, Packt Publishing, 2013. ISBN 1782166289
  • Cornel Pokorny, Computer Graphics with WebGL, ITU Press. http://webgl-hbook.com/book
  • Wilhelm Burger and Mark J. Burge, Principles of Digital Image Processing: Fundamental Techniques, Springer, 2011. ISBN 1848001908.
  • Fletcher Dunn, Ian Parberry, 3D Math Primer for Graphics and Game Development, 2nd Edition. CRC Press, 2011. ISBN 1568817231.
Links: