CS475/CS675: Computer Graphics


Logistics

  • Class Timings: Slot 12
  • Office Timings: After class or fix by email
  • Classroom: SIC 301, Kanwal Rekhi Building (Tentative)
  • Course Mailing List: cs475 AT cse, cs675 AT cse (BTech and DD subscribe to cs475, MTech and PhD subscribe to cs675)
  • Teaching Assistant: Pratik Kalshetti, Sukanya Bhattacharjee
  • Important: Academic Integrity of Assignment Submissions

Course Overview

This is the first course on Computer Graphics - here we will learn to draw images and make animations on the computer. This will be achieved by learning the underlying algorithms and hands-on implementations of those techniques. We will talk about everything, starting from basic drawing on the computer to special effects in movies. The course is programming intensive and will emphasize a lot on assignments and at least one project. Overall, it will be a lot of fun!

Eligibility/Prerequisites

If you are curious about computer graphics at all - attend the first lecture.

  • This course is open to BTech, Dual 2nd year+ students and MTech 1st year students.
  • Knowledge of C/C++ Programming is desirable.
  • Basic Linear Algebra is desirable.
  • Basic data structures and algorithms is desirable.

Lecture Schedule

Date Topics Tasks
Jul 29 Introduction to the course
[Slides][Handouts]
See the course homepage. Subscribe to the appropriate mailing list.
Aug 1 Setting up OpenGL Go through the OpenGL tutorials page, run the triangle drawing tutorial.
Aug 5, Aug 9 Rasterization Basics
[Slides][Handouts]
Source code of demo shown in class and notes on Bresenham line drawing can be found here. Readings: Bresenham line drawing, Rasterization of Circles, Floodfill. Readings from textbook: Read Chapters 1, 2 and 3.
Aug 12 Clipping
[Slides] [Handouts]
Readings: Cyrus-Beck Clipping.
Aug 19, Aug 23 Drawing in OpenGL
[Slides] [Handouts]
The Colorcube example can be found here.
Aug 26 2D Transformations
[Slides] [Handouts]
Assignment 1 is out. Readings from book: Read Chapters 5 (Sections 5.1 - 5.3), 6 and 8 (upto Section 8.2).
Aug 29 3D Transformations
[Slides] [Handouts]
Readings from book: Read Chapter 6. Quiz 1 on Sep 4.
Sep 4 Quiz 1 8:30am-9:30am, SIC-301
Sep 5 Viewing Transformations
[Slides] [Handouts]
Readings from book: Read Chapter 6.
Sep 6 Modelling-Viewing Pipeline
[Slides] [Handouts]
Readings from book: Read Chapter 7.
Sep 9, Sep 12 Visibility
[Slides] [Handouts]
Assignment 2 is out.
Sep 20 Mid-Semester Exam 4:00pm-6:00pm, SIC-301
Sep 23 Cubic Splines
[Slides] [Handouts]
Readings from book: Read Chapter 15. Online notes on modelling curves.
Sep 26 Bézier Splines
[Slides] [Handouts]
Readings from book: Read Chapter 15. Online notes on modelling curves.
Sep 30 B-Splines
[Slides] [Handouts]
Readings from book: Read Chapter 15. Online notes on modelling curves.
Oct 3 Modelling Surfaces
[Slides] [Handouts]
Online notes on modelling surfaces.
Oct 7 Hierarchical Modelling
[Slides] [Handouts]
More reference material is available in the online readings listed here. Assignment 3 is out.
Oct 10, Oct 14 Shading
[Slides] [Handouts]
More reference material is available in the online readings listed here.
Oct 17, Oct 21 Texture
[Slides] [Handouts]
Readings from book: Read Chapter 11.
Oct 23 Quiz 2 8:30am-9:30am, at SIC-301.
Oct 24 Principles of Animation
[Slides] [Handouts]
Online notes on animation.
Oct 31, Nov 4 Interpolation for Animation
[Slides] [Handouts]
Online notes on animation.
Nov 4 Ray Tracing 1
[Slides] [Handouts]
Online notes on ray tracing.
Nov 7 Ray Tracing 2
[Slides] [Handouts]
Online notes on ray tracing.
Nov 15 End Semester Exam 5:30pm-8:30pm, at SIC-301.

Assignments and Homeworks

Important: Academic integrity is paramount. Any dishonesty will be severely dealt with.

Please read my views on academic integrity of assignment submissions before submitting anything to me.

  1. Assignment 1
  2. Assignment 2
  3. Assignment 3
  4. Assignment 4

Assignments Submission

We are using Github Classroom this semester for assignments in this course. Please check instructions for the same to figure out assignment submissions.

Resources

  1. Practice Questions
    1. Practice Question Set 1
  2. Books
    1. Textbook
      • Fundamentals of Computer Graphics (Fourth Edition), Peter Shirley, Steve Marschner and others, A K Peters/CRC Press (2015)
      • Publisher page is here.
      • Amazon.in page is here.
      • Flipkart.com page is here.
    2. Other Books
      • Interactive Computer Graphics - A Top-Down Approach Using OpenGL (6/e), Edward Angel
      • Computer Graphics using OpenGL (3/e), F. S. Hill Jr. and S. M. Kelley
      • Computer Graphics with OpenGL (3/e), D. D. Hearn and M. P. Baker
  3. OpenGL Tutorials
    1. NeHe OpenGL Tutorials
    2. OpenGL.org tutorial listings
    3. Nate Robins' OpenGL Tutorials
    4. OpenGL 4 Tutorials
    5. Anton's OpenGL 4 Tutorials
  4. OpenGL Documentation
    1. OpenGL Programmers Guide - The Red Book (for OpenGL v1.1)
    2. OpenGL.org - The official OpenGL site
    3. OpenGL Registry. This has links to the various OpenGL Specifications.
    4. OpenGL Man Pages
  5. Associated Library Websites
    1. GLFW - OpenGL Context management, window and input handling
    2. GLEW - The OpenGL Extension Wrangler Library
    3. GLM - OpenGL Mathematics
  6. Online Readings
    1. Rasterization Algorithms
      1. The Bresenham Line Drawing Algorithm
      2. Optimizing the Bresenham Algorithm (Archived Version from the Wayback Machine)
      3. Algorithm for computer control of a digital plotter, J. Bresenham, IBM Systems Journal 4(1):25-30, 1965
      4. A Linear Algorithm for Incremental Digital Display of Circular Arcs, J. Bresenham, Communications of the ACM, 20(2):100-106, 1977
      5. Rasterizing Circles (Archived version from the Wayback machine)
      6. Interactive demo for Scanline fill
      7. Floodfill Algorithm for drawing filled polygons
      8. Pointillism
      9. Color Models
    2. Clipping Algorithms
      1. Cohen-Sutherland Line Clipping
      2. Cyrus-Beck (Liang-Barsky) Line Clipping
      3. Sutherland-Hodgman Clipping
    3. Transformations
      1. Homogeneous Coordinates
      2. Euler Angles
      3. Gimbal Lock
      4. Gimbal Lock
    4. Modelling-Viewing Pipeline
      1. Coordinate Systems in the Graphics Pipeline
      2. Modelling-Viewing Pipeline
    5. Visibility
      1. BSP Trees (courtesy the Wayback Machine)
      2. BSP FAQ
      3. The Art Gallery Problem
      4. Quadtrees
      5. More Quadtrees
      6. Octrees
    6. Modelling Curves and Surfaces
      1. Notes on Computing with Geometry
      2. Mathematical Elements for Computer Graphics by Rogers and Adams, Google Books
    7. Hierarchical Modelling
      1. Hierarchical Trasformations
      2. Hierarchical Modelling and Display lists in OpenGL
    8. Shading
      1. Phong Illumination Model
      2. Blinn-Phong Shading
      3. Per-Pixel Lighting
    9. Animation
      1. Principles of Traditional Animation Applied to 3D Computer Animation
      2. Continuity of Parametric Curves
      3. Quaternions and Spatial Rotations
    10. Ray Tracing
      1. Ray Tracing
      2. The Internet Ray Tracing Competition (the competition seems to be down at the moment)
      3. The Persistence of Vision Raytracer
      4. Object-Object Intersections
      5. Overview of raytracing on Scratchapixel
      6. PCTrace (My narcissistically named raytracer)