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.
- 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:
- 2D image manipulation
- Raster image representation
- Vector graphics and rasterization (e.g. HTML5 canvas)
- Basic image processing
- Image file formats
- Geometry modeling
- Introduction to matrix calculus for graphics
- Geometry modeling and transformations
- 3D Graphics
- 3D graphics engine concepts
- Object models and data structures
- Materials (texturing, lighting, effects…)
- Rendering pipeline and shaders
- Animation and Interaction
- Design of animated graphics
- Interacting with 2D and 3D scenes
- 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:
- David J. Eck, Introduction to Computer Graphics Version 1.2, January 2018. Online book available at: http://math.hws.edu/graphicsbook/
- 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:
- HTML5 Canvas: http://www.html5canvastutorials.com/tutorials/html5-canvas-element/
- HTML5 Canvas: https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial
- WebGL official page: https://www.khronos.org/webgl/wiki/
- Three.js official page: http://threejs.org
- Vector Math for 3D Computer Graphics: http://chortle.ccsu.edu/vectorlessons/vectorindex.html