CS675 - Computer Graphics
Semester 1 (Autumn), 2025-2026
Overview
This is the first course on Computer Graphics - here we will learn to draw images and make animations on the computer. We will learn 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 very programming intensive and will emphasize a lot on assignments, geared towards making you understand many aspects of this amazing subject. Watch the course teaser video to get an idea about its contents.
Teaser Video
Logistics
- Class Timings: Slot 10
- Office Timings: During class slot hours
- Classroom: IIT Bombay Moodle, CS675 team on MS Teams (You will be added to the team once course adjustment is over.)
- Teaching Assistant: To be announced
- Important: Academic Integrity of Assignment Submissions
Registration Instructions
-
This semester Computer Graphics in CSE is only going to run under the course code CS675.
-
You are not allowed to register for this course if you have done another course that overlaps significantly in content with it. If you have a doubt about this, ask me.
-
Any CSE B.Tech. or DD student who is in the 2nd year or above can take the course.
-
Any CSE M.Tech. or Ph.D. student can take the course.
-
If you are a non-CSE B.Tech. or DD student who has done the data structures course (CS213/CS213M or equivalent), you can register for CS675, provided your Facad or department has no objection.
-
If you are a non-CSE B.Tech. or DD student who has no prior prgramming experience and has not done a basic data structures course, I strongly recommend that you do not take this course.
-
If you are a non-CSE M.Tech. or Ph.D. student who wants to take this course, you need your thesis supervisor’s approval. Please talk to me after you get that.
-
You can tag the course as whatever you want.
-
Audits are not allowed.
-
If after reading the above, you are still in doubt about whether you can do the course or not, it is best to attend the first lecture. And talk to me in person after class, if required.
Eligibility/Prerequisites
If you are curious about computer graphics at all - attend the first lecture.
- Knowledge of C/C++ Programming is strongly recommended.
- Knowledge of basic Linear Algebra is desirable.
- Knowledge of data structures and algorithms is desirable.
- Learn how to use git.
- Make sure you have a GitHub id. You will need it for the course.
Course Content
Course content is available on Moodle. All resource links can be found in the section below.
| Date | Topics | Tasks and Resources |
|---|---|---|
| Jun 29 | Introduction to the Course | Video units 1-2 to 1-5. |
| Aug 1, Aug 5 | The Graphics Pipeline | Video for units 2-1 to 2-4. Assignment 0 released. |
| Aug 8, Aug 11 | The OpenGL API | Video for units 3-1 to 3-3. Assignment 0 submission. |
| Aug 19 | Pinhole Camera and Clipping | Video for units 4-1, 4-2 (mandatory viewing). |
| Aug 22 | 2D Transformations | Video for units 5-1, 5-2. |
| Aug 22 | 3D Transformations | Video for units 5-3. |
| Aug 25 | Hierarchical Modelling | Video for unit 9 |
| Aug 29 | Quiz 1 | Syllabus is everything covered till Aug 25. |
| Sep 2 | Viewing Transformations | Videos for unit 6. |
| Sep 9, Sep 10 | Modeling-Viewing Pipeline | Videos for unit 7. |
| Sep 12 | Visibility | Videos for unit 8. |
| Sep 17 | Mid-Semester Exam | CC-103, 16:00-18:00 |
| Sep 23, Sep 26 | Rendering | Videos for unit 11 |
| Sep 30, Oct 3, Oct 7 | Texture Mapping | Videos for unit 12. |
| Oct 7 | Modeling Curves - Cubic Splines | Videos for unit 10. |
| Oct 10 | Modeling Curves - Bézier Splines | Videos for unit 10. |
| Oct 14 | Modeling Curves - B-Splines | Videos for unit 10. |
Resources
-
Recorded Videos on YouTube
- Recorded videos from an earlier iteration of the course can be found on YouTube here.
-
Books
- Books
a. Fundamentals of Computer Graphics (Fourth Edition), Peter Shirley, Steve Marschner and others, A K Peters/CRC Press (2015)
b. Interactive Computer Graphics - A Top-Down Approach Using OpenGL (6/e), Edward Angel
c. Computer Graphics using OpenGL (3/e), F. S. Hill Jr. and S. M. Kelley
d. Computer Graphics with OpenGL (3/e), D. D. Hearn and M. P. Baker
- Books
-
Practice Questions
-
OpenGL Tutorials
-
OpenGL Documentation
- OpenGL Programmers Guide - The Red Book (for OpenGL v1.1)
- OpenGL.org - The official OpenGL site
- OpenGL Registry. This has links to the various OpenGL Specifications.
- OpenGL Man Pages
-
Associated Library Websites
-
Online Readings
- Rasterization Algorithms
a. The Bresenham Line Drawing Algorithm
b. Optimizing the Bresenham Algorithm (Archived Version from the Wayback Machine)
c. Algorithm for computer control of a digital plotter, J. Bresenham, IBM Systems Journal 4(1):25-30, 1965
d. A Linear Algorithm for Incremental Digital Display of Circular Arcs, J. Bresenham, Communications of the ACM, 20(2):100-106, 1977
e. Rasterizing Circles (Archived version from the Wayback machine)
f. Interactive demo for Scanline fill
g. Floodfill Algorithm for drawing filled polygons
h. Pointillism
i. Color Models - Clipping Algorithms
a. Cohen-Sutherland Line Clipping
b. Cyrus-Beck (Liang-Barsky) Line Clipping
c. Sutherland-Hodgman Clipping - Transformations
a. Homogeneous Coordinates
b. Euler Angles
c. Gimbal Lock
d. Gimbal Lock - Modelling-Viewing Pipeline
a. Coordinate Systems in the Graphics Pipeline
b. Modelling-Viewing Pipeline - Visibility
a. BSP Trees (courtesy the Wayback Machine)
b. BSP FAQ
c. The Art Gallery Problem
d. Quadtrees
e. More Quadtrees
f. Octrees - Modelling Curves and Surfaces
a. Notes on Computing with Geometry
b. Mathematical Elements for Computer Graphics by Rogers and Adams, Google Books
c. The Beauty of Bézier Curves, Freya Holmér, YouTube Video
d. The Continuity of Splines, Freya Holmér, YouTube Video - Hierarchical Modelling
a. Hierarchical Transformations
b. Hierarchical Modelling and Display lists in OpenGL - Shading
a. Phong Illumination Model
b. Blinn-Phong Shading
c. Per-Pixel Lighting
d. Texture Mapping, Lecture from Trends in CG Course, Zoran Popović - Animation
a. Principles of Traditional Animation Applied to 3D Computer Animation
b. Continuity of Parametric Curves
c. Quaternions and Spatial Rotations
d. Visualizing Quaternions, Grant Sanderson and Ben Eater - Volume Graphics
a. Volume Rendering Techniques, GPU Gems
b. Volume Rendering, Wikipedia
c. Marching Cubes, Lorensen and Cline - Ray Tracing
a. Ray Tracing
b. The Internet Ray Tracing Competition (the competition seems to be down at the moment)
c. The Persistence of Vision Raytracer
d. Object-Object Intersections
e. Overview of raytracing on Scratchapixel
- Rasterization Algorithms