CS475/CS675: Computer Graphics


Latest News: Short Film Contest Submissions



Logistics

  • Class Timings: Slot 6 (Wed, Fri: 11am-12:30pm)
  • Office Timings: After class or fix by email
  • Classroom: SIC - 305
  • Course Mailing List: cs475 AT cse, cs675 AT cse (BTech and DD subscribe to cs475, MTech and PhD subscribe to cs675)
  • Teaching Assistant: Satya Narayan Sahoo
  • 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 3rd 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 23 Introduction to the course See the course homepage.
Jul 28 Rasterization Basics Readings: Bresenham line drawing. Source code of demo shown in class can be foundhere.
Jul 30 Drawing in OpenGL Readings: Notes on Bresenham line drawing. Rasterization of Circles, Floodfill. Source for primitives drawing demo shown in class can be found here.
Aug 4 Clipping Assignment 1 has been announced. Join the course mailing lists. Readings: Cyrus-Beck Clipping
Aug 6 2D Transformations Readings from book: Read Chapters 1, 2, 3, 5 (Sections 5.1 - 5.3), 6 and 8 (upto Section 8.2)
Aug 6 Extra class on OpenGL Programming Links to OpenGL resources. Source for demo shown in class can be found here.
Aug 11 3D Transformations Readings from book: Read Chapter 6.
Aug 13 Viewing Transformations Readings from book: Read Chapter 6.
Aug 18 The Modeling-Viewing Pipeline Readings from book: Read Chapter 7.
Aug 20 Quiz 1
Aug 20 The Modeling-Viewing Pipeline Readings from book: Read Chapter 7.
Aug 25 Assignment 2 explained Quiz 1 answers discussed.
Aug 27 Ray Tracing 1 Readings from book: Read Chapter 4.
Sep 1, Sep 4 Ray Tracing 2 Readings from book: Read Chapter 4 and 13.
Sep 8 Shading Readings from book: Read Chapter 10. Source for demo showed in class is here
Sep 15, Sep 17 Mid-semester Exams
Sep 22, Sep 24 Visibility Readings from book: Read Chapter 8, 12 (only sections 12.1(12.1.1-12.1.3), 12.3 and 12.4). More reference material is available in the online readings listed here.
Sep 29, Oct 1, Oct 6 Texture Mapping Readings from book: Read Chapter 11. A3, Part 1 announced.
Oct 8 Hierarchical Modelling More online reading material.
Oct 12 Cubic Splines Readings from book: Read Chapter 15. A3, Part 2 announced.
Oct 15 Bèzier Splines Readings from book: Read Chapter 15. Online notes on modelling curves.
Oct 19, Oct 20 B-Splines Readings from book: Read Chapter 15. Online notes on modelling curves.
Oct 22, Oct 27 Modelling Surfaces Online notes on modelling surfaces.
Nov 10 Principles of Animation Online notes on Animation. Quiz 2 on 12/11/2010.
Nov 12 Interpolation for Animation Online notes on Animation.

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.

Assignments Submission

The Assignment Submissions Page is here.

Resources

  1. Books
    1. Textbook
      • Computer Graphics (First Indian Edition), Peter Shirley and Steve Marschner, Cengage Learning Reprint of A. K. Peters, 2010
      • Publisher page is here.
      • Flipkart.com page is here.
    2. Other Books
      • Interactive Computer Graphics - A Top-Down Approach Using OpenGL (5/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
  2. OpenGL Tutorials
    1. NeHe OpenGL Tutorials
    2. OpenGL.org tutorial listings
    3. Nate Robins' OpenGL Tutorials
  3. OpenGL Documentation
    1. OpenGL Programmers Guide - The Red Book (for OpenGL v1.1)
    2. OpenGL.org - The official OpenGL site
    3. OpenGL 2.1 Specification
    4. OpenGL Man Pages
  4. Online Readings
    1. Rasterization Algorithms
      1. Notes on the Bresenham Line Drawing Algorithm
      2. The Bresenham Line Drawing Algorithm
      3. Optimizing the Bresenham Algorithm
      4. Algorithm for computer control of a digital plotter, J. Bresenham, IBM Systems Journal 4(1):25-30, 1965
      5. A Linear Algorithm for Incremental Digital Display of Circular Arcs, J. Bresenham, Communications of the ACM, 20(2):100-106, 1977
      6. Rasterizing Circles
      7. Floodfill Algorithm for drawing filled polygons
    2. Clipping Algorithms
      1. Cohen-Sutherland Line Clipping
      2. Cyrus-Beck (Liang-Barsky) Line Clipping
      3. Sutherland-Hodgman Clipping
    3. Transformations
      1. Euler Angles
      2. Gimbal Lock
      3. Gimbal Lock
    4. Ray Tracing
      1. Ray Tracing
      2. The Internet Ray Tracing Competition
      3. The Persistence of Vision Raytracer
      4. Object-Object Intersections
    5. Visibility
      1. BSP Trees
      2. BSP FAQ
      3. The Art Gallery Problem
      4. Quadtrees
      5. More Quadtrees
      6. Octrees
    6. Hierarchical Modelling
      1. Hierarchical Trasformations
      2. Hierarchical Modelling and Display lists in OpenGL
    7. Modelling Curves and Surfaces
      1. Notes on Computing with Geometry
      2. Mathematical Elements for Computer Graphics by Rogers and Adams, Google Books
    8. Animation
      1. Principles of Traditional Animation Applied to 3D Computer Animation
      2. Continuity of Parametric Curves