CS 418: Interactive Computer Graphics

Spring  2017

Tu/Th     9:30  10:45 am,
Room 1404 Siebel Center

University of Illinois at Urbana-Champaign,
Department of Computer Science
Instructor : Eric Shaffer
Office: 2103 Siebel Center
Office Hour: Th. 2:30-3:30pm or by appointment

Lecture Videos: Are available at this link [VIDEO LINK]

Book:  There is no book for the class. Notes and other materials will be posted online.

Piazza: This term we will be using Piazza for class discussion. Rather than emailing questions to the teaching staff, we encourage you to post your questions on Piazza. Find our class page at: https://piazza.com/illinois/fall2017/cs418

Discussion Website:  https://courses.engr.illinois.edu/cs418/discussion_content_Spring2017/discussion.html

TA Office Hours:

Apollo Ellis - Tuesday 2:00-3:00pm SC 3238A

Ryan Freedman - Wednesday 12:00-1:00pm SC 0207

Russell Michal -  Tuesday 12:15-1:15pm SC 0207

Mary Pietrowicz - Friday 2:00-3:00pm SC 0207

Grading: The course grade for the class is broken down among the following items:

Machine Problem 1  15%
Machine Problem 2  15%
Machine Problem 3  15%
Machine Problem 4  10%
Exam 1  15%
Exam 2   15%
Exam 3  15%

 

 

 

 

 



Machine Problems: There will be 4 machine problems during the semester. Assignments will be announced in class and on Piazza. Homework submission will be done electronically through Compass. The required files and acceptable file formats for submission will be specified in the assignment.

Exams: There will be three exams. If possible we will use the Computer Based Testing FacilityThe APPROXIMATE dates of the exams will be the weeks of Feb. 20, March 14, and April 24.

Late Homework or Projects: Machine problems submitted after the due date lose 10% per day. In exceptional circumstances where extension may be reasonable (illness, family emergency etc.) arrangement must be made with the instructor.

Collaboration: You should collaborate on the MPs. You should not copy code verbatim from each other or the web. 

Software:  We will use HTML/JavaScript/WebGL and GLSL for the programming assignments. No prior knowledge of these is required for the class.

Commenting Code: All files, classes, methods and properties should be documented with JSDoc comments with the appropriate tags and types.
                                  Details can be found in the Google JavaScript Style Guide.

Other Policies: Do not make class material publicly available. This includes copies of lectures, homework, solutions, handouts, and code provided by us.

4 Credit Option: If you are taking the course for 4 credits, you will complete extra work on Machine Problems 2 through 4.

Language References and Resources

Tentative Schedule (Note that slides and topics for future lectures may change):

Date Topic Materials Assignments
1/17 Introduction

Rasterization

WebGL

  • Lecture 1: Introduction [PDF]
  • Lecture 2: Introduction to WebGL [PDF]

Read
Chapter 5: 2D Transformational Geometry
by John Hart [PDF]

1/19

WebGL
Vertex Shaders
Fragment Shaders

Read
Chapter 6: 3D Transformational Geometry
by John Hart [PDF]

1/24

2D Affine Transformations
Vectors
3D Affine Transformations

  • Lecture 4:  2D Transformations for Computer Graphics [PDF]
  • Lecture 5: More Mathematics for Computer Graphics [PDF]

 
1/26

Geometry in WebGL

In-class Worksheet 1 [PDF]
Solution [PDF]
MP1 Due Feb. 10 [link]

1/31

Basic Animation

GLSL

 

  • Lecture 8: Introduction to GLSL [PDF]​

 

In-class Worksheet 2 [PDF]
Solution [PDF]

Read
Chapter 7: Modeling Transformations
by John Hart [PDF]

2/2 Modeling and Viewing

Read
Chapter 8: Viewing
by John Hart [PDF]

In-class Worksheet 3 [PDF]
Solution [PDF]
 

2/7

Orthographic Projection

 

 

 

 

2/9

Perspective Projection

  • Lecture 12: Projection [PDF

 

2/14 Basic Shading
  • Lecture 13: Basic Shading [PDF]
  •  

In-class Worksheet 4 [PDF]
Solution [PDF]
Special Bonus Worksheet [PDF]
Solution [PDF]

2/16

Transforming Normals

Simple Mesh Generation

In-class Worksheet 5 [PDF]
Solution [PDF]

2/21 No Class
(EXAM WEEK)

 

 
2/23 Terrain Generation

In-class Worksheet 6 [PDF]
Solution [PDF]  

In-class Worksheet 7 [PDF]
Solution [PDF]

2/28

Simple Interaction

Quaternions 

  • Lecture 19: Quaternions [PDF]

MP 2 Part 1 Due March 6 [link]

3/2 Clipping
  • Lecture 20: Clipping [PDF]
In-class Worksheet 8 [PDF]
Solution [PDF]
Read
Chapter 13: Images
by John Hart [PDF]
3/7
Color
 
  • Lecture 21: Color [PDF]
In-class Worksheet 9 [PDF]
Solution [PDF]
3/9

Alpha Blending in WebGL

  • Lecture 22: Blending [PDF]

MP 2 Part 2 Due March 17 [link]

In class Worksheet 10 [PDF]
Solution [PDF]

Read Chapter 14: Rasterization
by John Hart [PDF]

3/14 Rasterization
  • Lecture 23: Rasterization [PDF]

In class Worksheet 11 [PDF]

3/16

No Class 
​(EXAM WEEK)

 

 

3/21

Spring Break

 

 

3/23 Spring Break 

 
 
3/28 Texture Mapping Read Chapter 15&16: Texture Mapping
by John Hart [PDF]

In class Worksheet 12 [PDF]
3/30 Texture Filtering
  • Texture Filtering [PDF]

Mipmapping [PDF]
(taken from Essential mathematics for games and interactive applications : a programmer's guide by James Van Verth) 

Read Section 9.8

4/4 Environment Mapping
  • Environment Mapping [PDF]

In class Worksheet 13 [PDF]

4/6 Bump Mapping
  • Bump Mapping [PDF]
 
4/11 Bezier Curves and Surfaces
  • Bezier Curves [PDF]
Read Chapter 4 Curves and Surfaces for CAGD: A Practical Guide 

by Gerald Farin

 [PDF]
 

4/13

A Simple Physics Engine

  • Game Physics [PDF]
Read Chapter 3 Game Physics Engine Development
by Ian Millington [PDF]
 
4/18

A Simple Physics Engine

  • Game Physics [PDF]

Read Bezier Techniques by Dianne Hansford [PDF]

Worksheet 14 [PDF]

4/20 Bezier Surfaces
  • Bezier Surfaces [PDF]
Worksheet 15 [PDF]
 
4/25 Mesh Processing
  • Mesh Processing [PDF]
 
4/27 Subdivision Surfaces
  • Subdivision Surfaces [PDF]
 
5/2 Game Development