Advanced Computer Graphics
CSCI B581 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
B581 Canvas page
B581 IU Github page
B581 Course Listing
  Monday   Wednesday   Friday   assignments / exams / key dates
08 January 2018
Lecture 01
Course Overview,
Introduction to Computer Graphics
10 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)
15 January 2018
Martin Luther King Jr. Day
(no classes)
17 January 2018
Lecture 03
Raster Graphics Hardware
19 January 2018
Lab 02
introduction to object definition and modeling
Homework 01
due on Monday January 22 at 4:00PM
on IU GitHub
(Sample Solutions)

(week 02)
22 January 2018
Lecture 04
2D Transformations
24 January 2018
Lecture 05
a first OpenGL ES / GLSL program
26 January 2018
Lab 03
Introduction to OpenGL ES on iOS and Xcode

(week 03)
29 January 2018
Lecture 06
2D Transformations, continued
31 January 2018
Lecture 07
2D operations: point-point, point-line, line-line
03 February 2018
Lab 04
OpenGL ES primitives, GLSL varying variables, and animation
Assignment 01
due on Monday, February 12
Friday, February 09
at 11:59PM on IU GitHub
(Sample Solution)

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

(week 05)
12 February 2018
  Lecture 10
Cyrus-Beck Clipping Algorithm,
Rectangular Region Clipping: Cohen-Sutherland Algorithm
14 February 2018
  Lecture 11
2D Cubic Splines: from linear to quadratic to cubic, the De Casteljau method
16 February 2018
Lab 06
topics
Homework 02
due on Thursday, February 22
Tuesday, February 20
at 11:59PM on IU GitHub
(Sample Solutions)

(week 06)
19 February 2018
  Lecture 12
Splines, Curves and Surfaces; Designing Parametric Cubic Curves; Bezier and B-Spline Curves and Surfaces
22 February 2018
  Lecture 13
2D Cubic Spline Types: Bezier, Catmull-Rom, B-Spline (A.Hanson notes on Cubic Splines)
24 February 2018
Lab 07
topics

(week 07)
26 February 2018
  Lecture 14
topics for Assignment 02: computing spline interpolations in the Vertex Shader
28 February 2018
   Lecture 15
Review: Polygon Projection Pipeline Stages.
topics for Assignment 02: computing cubic splines, De Casteljau (A.Hanson notes on Spline Algorithms) 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)
05 March 2018
  Midterm Guide
Midterm Exam
07 March 2018
  Lecture 16
intro to illumination: Lambert's law for modeling diffuse illumination
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)
19 March 2018
  Lecture 17
(Color) Logical Operations & Blending Operations;
Specular (Phong-Blinn) Illumination;
Per-Fragment (Phong Interpolation) Shading
21 March 2018
  Lecture 18
Color Models;
Smooth (Gouraud Interpolation) Shading
23 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)
26 March 2018
  Lecture 19
(Color) Logical Operations & Blending Operations;
Specular (Phong-Blinn) Illumination;
Per-Fragment (Phong Interpolation) Shading
28 March 2018
  Lecture 20
3D Projections
30 March 2018
Lab 11
perspective transformation matrix

(week 12)
02 April 2018
  Lecture 21
Useful Math for 3D
04 April 2018
  Lecture 22
3D Rotations
06 April 2018
Lab 12
basic 3D camera motion
Assignment 03
due on Friday, 13 April at 11:59PM
on IU GitHub
 
(week 13)
09 April 2018
  Lecture 23
interactive 3D graphics programming: camera setup, part 1
11 April 2018
  Lecture 24
interactive 3D Rotations: details
13 April 2018
Lab 13
help (ungraded) for Assignment 03: consult (updated) Lecture 24 notes about interactive 3D rotations, and ask your lab assistant for help!

(week 14)
16 April 2018
  Lecture 25 & 25b
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
18 April 2018
  Lecture 26
Half-toning, Dithering, Texture Mapping
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)
23 April 2018
  Lecture 27 & 27b
Bump Mapping, Height Maps and Normal Maps;
Scene Graphs
25 April 2018
  Lecture 28
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 Thursday, May 03
at 11:59PM on IU GitHub
(sample solutions)

(week 16)


04 May 2018
Final Exam Guide
  Final Exam
in SY 212,
12:30-2:30 p.m., Friday, May 4
Final Exams - "Final Exams week is from Monday, April 30, to Friday, March 04."
(week 17)

 
Mitja Hmeljak 2018