Interactive Graphics
CSCI B481 Spring 2018

Syllabus
contact all AIs-UIs and instructor at:
csci-b481-b581-ai-l@list.indiana.edu
Mitja Hmeljak
mitja*indiana-edu
Office hours in:
Luddy Hall room 2012
Mon & Wed 11:30AM-12:30PM
Assistant Instructors
Office hours in: Luddy Hall room 2014/2015
Vinita Boolchandani - vinitab*iu*edu, Monday 11:00AM-12:00(noon)
Jonathan Windmiller - jawindmi*iu*edu, Thursday 2:00PM-3:00PM
B481 Canvas page
B481 IU Github page
B481 Course Listing
  Tuesday   Thursday   Friday   assignments / exams / key dates
09 January 2018
Lecture 01
Course Overview,
Introduction to Computer Graphics
11 January 2018
Lecture 02
Image Formation,
the Polygon Projection (Programmable) Pipeline
12 January 2018
Lab 01
Introduction to IU Github, and a simple fragment shader
classes begin

(week 01)
16 January 2018
Lecture 03
Raster Graphics Hardware
18 January 2018
Lecture 04
2D Transformations
19 January 2018
Lab 02
introduction to object definition and modeling
Homework 01
due on Thursday, January 25
Tuesday, January 23
at 11:15AM on IU GitHub
(sample solutions)

(week 02)
23 January 2018
Lecture 05
General approach to
2D Affine Transformations.
Introduction to Projection Transformations.
25 January 2018
Lecture 06
a first OpenGL ES / GLSL program
26 January 2018
Lab 03
Introduction to OpenGL ES on iOS and Xcode

(week 03)
30 January 2018
Lab 04 ← note!
Venue change: Luddy Hall IF0119
more OpenGL ES and GLSL basics
01 February 2018
Lecture 07
2D Transformations, continued
02 February 2018
Lecture 08
2D Object Transformations for modeling in the Polygon Projection Pipeline
Assignment 01
due on Tuesday February 13
Friday, February 09
at 11:15AM on IU GitHub
(sample solution)

(week 04)
06 February 2018
Lecture 09
math for Interactive 2D Graphics: point, line.
2D operations:
point-point, point-line, line-line
08 February 2018
Lecture 10
Line-Line Intersections,
Inside-Outside Tests,
Line Clipping
09 February 2018
Lab 05
documenting Assignment 01 work

(week 05)
13 February 2018
  Lecture 11
Linear Interpolation,
Bi-Linear Interpolation,
2D Polynomial Curves: Cubic Splines
15 February 2018
  Lecture 12
Cyrus-Beck Clipping Algorithm,
Rectangular Region Clipping: Cohen-Sutherland Algorithm
16 February 2018
Lab 06
topics
Homework 02
due on Monday, 26 February
Thursday, 22 February
at 11:59PM on IU GitHub
(sample solutions)

(week 06)
20 February 2018
  Lecture 13
Homework 02 topics
(line and polygon clipping, linear and bilinear interpolations, splines)
22 February 2018
  Lecture 14
2D Cubic Spline Types: Bezier, Catmull-Rom, B-Spline
(read: Cubic Splines - by A.Hanson)
23 February 2018
Lab 07
topics

(week 07)
27 February 2018
  Lecture 15
topics for Assignment 02: computing spline interpolations in the Vertex Shader
01 March 2018
  Lecture 16
Review: Polygon Projection Pipeline Stages.
Topics for Assignment 02: computing cubic splines, the De Casteljau method (read: Spline Algorithms - by A.Hanson) vs. matrix multiplications.
02 March 2018
Lab 08
topics
Assignment 02
due on Tuesday, 20 March
Friday 09 March at 11:59PM
on IU GitHub

(week 08)
06 March 2018
  Midterm Guide
Midterm Exam
08 March 2018
  Lecture 17
Introduction to 3D
09 March 2018
Lab 09
help (ungraded) for Assignment 02
Sunday 11 March: Withdrawal with Automatic W - "Last day to drop a course with an automatic W."
(week 09)
Spring Break - no classes - "Break begins after last class on Saturday, March 10; classes resume on Monday, March 19." (week 10)
20 March 2018
  Lecture 18
Diffuse Illumination;
Flat Shading
22 March 2018
  Lecture 19
Color Models;
Gouraud Shading
24 March 2018
Lab 10
testing colors, projection, etc.
Homework 03
due on Thursday, March 29
Tuesday, March 27
at 11:59PM on IU GitHub
(sample solutions)

(week 11)
27 March 2018
  Lecture 20
Specular (Phong-Blinn) Illumination;
Per-Fragment (Phong Interpolation) Shading
29 March 2018
  Lecture 21
3D Projection Transformations
31 March 2018
Lab 11
perspective transformation matrix

(week 12)
03 April 2018
  Lecture 22
Useful Math for 3D
05 April 2018
  Lecture 23
3D Rotations
07 April 2018
Lab 12
basic 3D camera motion
Assignment 03
due on Friday, April 13
at 11:59PM on IU GitHub

(week 13)
10 April 2018
  Lecture 24
interactive 3D graphics programming: camera setup, part 1
12 April 2018
  Lecture 25
interactive 3D Rotations: details
14 April 2018
Lab 13
help (ungraded) for Assignment 03: consult (updated) Lecture 25 notes about interactive 3D rotations, and ask your lab assistant for help!

(week 14)
17 April 2018
  Lecture 26 & 26b
Hidden Surface Removal:
model occlusions, painter's algorithm - depth sort, scan line algorithm, Z-buffer - depth buffer method
Camera setup:
camera frame, flying camera controls, azimuth/elevation/tilt
19 April 2018
  Lecture 27
Half-toning, Dithering;
Texture Mappingopics
20 April 2018
Lab 14
texture mapping
Assignment 04
due on Sunday, 22 April at 11:59PM
on IU GitHub
note: there is no penalty if you submit your assignment late, as long as:
  • you've turned in a substantial working project for Assignment 04 by Sunday, 22 April at 11:59PM
  • your completed Assignment 04 is turned in before your final exam
(week 15)
24 April 2018
  Lecture 28a & 28b
Bump Mapping, Height Maps and Normal Maps
26 April 2018
  Lecture 29
Stereo 3D;
Ray Tracing, Radiosity;
Marching Squares and Marching Cubes Algorithms
27 April 2018
Lab 15
student presentations:
from 11:15AM to 1PM in LH030
Homework 04
due on Wednesday, May 02
at 11:59PM on IU GitHub
(sample solutions)

(week 16)


03 May 2018
Final Exam Guide
  Final Exam
in BH 237,
12:30-2:30 p.m., Thursday, May 3
Final Exams - "Final Exams week is from Monday, April 30, to Friday, March 04."
(week 17)

 
Mitja Hmeljak 2018