CMPT 361: Introduction to Computer Graphics

(Spring 2019)

teapots

Introduction

Prerequisite

Course Staff

Resources

Course Schedule

bunnies


Introduction

Computer graphics provides the tools to model 2D, 3D, or higher dimensional data and processes, to generate believable or artistic rendering of the models, to interact with them through graphical user interfaces, and to create animations for communication, education and entertainment. This course offers an introduction to the modeling and rendering aspects of computer graphics. Topics include graphics display and interaction hardware, basic algorithms for 2D primitives, anti-aliasing, 2D and 3D geometrical transformations, 3D projections/viewing, Polygonal and hierarchical models, hidden-surface removal, basic rendering techniques (color, shading, raytracing, radiosity), and interaction techniques.The mathematical concepts and techniques behind the development of various computer graphics algorithms will be first covered. You will then learn to implement some selected algorithms through programming assignments using OpenGL and WebGL, gaining hands-on experience programming things ranging from simple 2D games and creative scene modeling to photorealistic rendering. In this course we will not cover computer animation topics, please refer to CMPT466 course webpage if you are interested.


Prerequisite


Course Staff

Principal Instructor: KangKang Yin
Guest Instructor:
Teaching Assistant: Mahdi Davoodikakhki <mahdi_davoodikakhki@sfu.ca>


Resources

Recommended Textbook: " Interactive Computer Graphics: A Top-Down Approach with Web GL, 7th Edition", by Edward Angel and Dave Shreiner.

Reference books: OpenGL Programming Guide: The Official Guide to Learning OpenGL;    Computer Graphics: Principles and Practice

The OpenGL Programmer's Guide (the Redbook) 8th Edition;
OpenGL ES 3.0 Programming Guide;
WebGL Programming Guide;
WebGL Beginner's Guide;
WebGL: Up and Running;
JavaScript: The Definitive Guide


Course Schedule (tentative, subject to changes, check regularly)

Week Monday Wednesday Friday
1
Jan 2
Welcome Day, no class 
Jan 4
Introduction (Chapter 1.1)
2 Jan 7
Image Formation (Chapters 1.2-1.5)
Jan 9
Image Formation (Chapters 1.2-1.5)
Jan 11
Graphics Pipeline (Chapters 1.6-1.10)
3 Jan 14
Hello Triangle (Chapters 2.1-2.3)
Common    triangle.html    triangle.js   
triangle2.html    triangle2.js    vshader.glsl    fshader.glsl   
Jan 16
GLSL (Chapters 2.4-2.6)
GLSL Functions
Jan 18
Writing Shaders (Chapters 2.7-2.10, A.1-A.2)
WebGL 2.0 and GLSL ES 3.0 API Quick Reference
WebGL 2.0 Specification
4 Jan 21
Interaction and Animation (Chapters 3.1-3.6)
Jan 23
Interaction and Animation (Chapters 3.7-3.11)
Programming Assignment 1 Release
Jan 25
Programming Tutorial
triangleMany.html    triangleMany.js 
5 Jan 28
Geometric Objects (Chapters 4.1-4.2, B.1-B.4)
Jan 30
Coordinate Systems (Chapaters 4.3,4.7)
Feb 1
Transformations (Chapters 4.9-4.11)
6 Feb 4
Transformations (Chapters 4.9-4.11)
Feb 6
Transformations (Chapters 4.9-4.11)
Feb 8
Modeling (Chapters 4.6,4.12-4.13)
7 Feb 11
Viewing (Chapters 5.1-5.3)
Programming Assignment 1 Due
Feb 13
Projection Matrices (Chapters 5.4-5.8)
Feb 15
Projection Matrices (Chapters 5.4-5.8)
Writing Assignment Release
8 Feb 18
Reading Break, no class
Feb 20
Reading Break, no class
Feb 22
Reading Break, no class
9 Feb 25
Projections and Shadows (Chapters 5.9-5.11)
Feb 27
Lighting and Shading (Chapters 6.1-6.4,6.7)
Mar 1
Polygonal Shading (Chapters 6.5,6.8,6.10)
Programming Assignment 2 Release
10 Mar 4
Programming Assignment I Review;
Programming Assignment II Tutorial
Mar 6
Discrete Techniques (Chapters 7.1-7.2)
Writing Assignment Due
Mar 8
Texture Mapping (Chapters 7.3-7.6) 
11 Mar 11
Texture Mapping (Chapters 7.3-7.6)
Mar 13
Environment&Bump Mapping (Chapters 7.7-7.9)
Mar 15
Framebuffer Objects (Chapters 7.12-7.14)
12 Mar 18
Blending and Antialiasing (Chapters 7.10, 8.12)
Mar 20
Hierarchical Modeling (Chapters 9.1-9.6)
Mar 22
Scene Graphs (Chapters 9.7-9.9)
Programming Assignment 2 Due
Programming Assignment 3 Release
13 Mar 25
Clipping (Chapters 8.1-8.7)
Mar 27
Rasterization and Hidden Surface Removal
(Chapters 8.8-8.11,9.10)
Mar 29
Ray Tracing (Chapters 12.1-12.4)
14 Apr 1
Assignments Review
Apr 3
Review and Discussion  (Chapter 8.2)
Apr 5
No Class
(Field trip 3-5pm: Nexus Media)
15 Apr 8
No Class
Programming Assignment 3 Due
Apr 10
Exam: 3:30-5:30pm
SSCB 9201 Biology


Exam Week