CS775 - Advanced Computer Graphics

Semester 2 (Spring), 2019-2020


Overview

We will delve into advanced topics in Character Animation, Global Illumination, Physics-based Animation and Augmented Reality. We will also look at neural rendering, reinforcement learning for character animation and neural network based encodings of physics simulations. The course will involve extensive hands-on work. So, the course is programming intensive and will emphasize a lot on assignments.


Logistics


Registration Instructions

  • This course is open to B.Tech., Dual 3rd year+ students and M.Tech. 1st and 2nd year students who satisfy the prerequisites given below.
  • Audits are not allowed.

Eligibility/Prerequisites

  • CS475/CS675 - Computer Graphics is a strict prerequisite for this course.
  • Knowledge of C/C++ Programming is essential.
  • Basic linear algebra, numerical techniques, data structures and algorithms will be helpful.
  • Familiarity with deep neural networks will be helpful.


Lecture Schedule

Date Topics Tasks and Resources
Jan 13 Introduction to the Course Join the mailing list for the course.
Jan 14
Jan 17
Radiometry For additional readings, see here.
Jan 20 BRDF For additional readings, see here.
Jan 21
Jan 23
Jan 27
Monte Carlo Path Tracing For additional readings, see here.
Jan 28
Jan 30
Motion Capture For additional readings, see here.
Jan 30
Feb 3
Skinning For additional readings, see here.
Feb 5 Quiz 1 SIC-305, 8:30am-9:30am
Feb 4
Feb 6
Kinematics For additional readings, see here.
Feb 10
Feb 11
Feb 13
Particle Systems and Explicit Solvers For additional readings, see here.
Feb 18
Feb 20
Stiff Systems and Implicit Solvers For additional readings, see here.
Feb 25 Mid-Semester Exam SIC-301, 1:30pm-3:30pm
Mar 4
Mar 9
Particle Fluids For additional readings, see here.
Mar 5 Learning For Rendering For additional readings, see here.
Mar 12
Mar 16
Mar17
Grid Fluids For additional readings, see here.
Mar 23 Augmented Reality - Introduction For additional readings, see here.
Mar 24 Augmented Reality - Displays For additional readings, see here.
Mar 26 Augmented Reality - Tracking 1 For additional readings, see here.
Mar 30 Augmented Reality - Tracking 2 For additional readings, see here.
Mar 31 Augmented Reality - Rendering For additional readings, see here.
Jun 21 Project presentation: AR Game Axel James, Veerendra
Jun 21 Project presentation: Rendering Lighting Manas Shukla, Debabrata Mandal
Jun 21 Project presentation: Simulation of Desertscapes FAnant Kumar, Shivam Sood
Jun 21 Project presentation: Surface Only Liquids with FMM B Nikhil, C Dileep K Reddy
Jun 21 Project presentation: ML for Character State Animation Nikhil R Reddy, Rajdeep Yadav
- Radiosity For additional readings, see here.
- Ambient Occlusion, Photon Mapping, Point based GI For additional readings, see here.
- Motion Graphs For additional readings, see here.

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: Ray Tracing (Part 1)
  2. Assignment 2: Ray Tracing (Part 2)
  3. Assignment 3: Project

Resources

  1. Books

    1. Augmented Reality (1/e), Deiter Schmalstieg and Tobias Hollerer, Addison Wesley.
    2. Physically-based Rendering : From Theory to Implementation (2/e), Matt Pharr and Greg Humphreys, Morgan Kaufmann.
    3. Computer Animation : Algorithms and Techniques (3/e), Rick Parent, Morgan Kaufmann.
    4. Advanced Animation and Rendering Techniques, Alan Watt and Mark Watt, Addison Wesley.
  2. Online Readings

    1. CS475 Online Readings (2020)
    2. Radiometry and BRDF
      1. Fresnel Reflectance
      2. Data from Cornell Light Measurement Lab
      3. Experimental Validation of Analytical BRDF Models, Ngan, Durand, Matusik
      4. Notes on Radiometry by Prof. Steve Marschner, Cornell University
    3. Radiosity
      1. SIGGRAPH Education Radiosity Slide Set
      2. Modeling the interaction of light between diffuse surfaces, Goral, Torrance, Greenberg and Battaile, SIGGRAPH 84.
      3. The hemi-cube: a radiosity solution for complex environments, Cohen and Greenberg, SIGGRAPH 85.
      4. RADIOSITY: An Illuminating Perspective, Drucker, Written Doctoral Exam
    4. Monte-Carlo Raytracing
      1. smallpt: G.I. in 99 lines of C++
      2. The Global Illumination Compendium
      3. State of the Art in Monte Carlo Ray Tracing for Realistic Image Synthesis, SIGGRAPH 2001 course notes
    5. Ambient Occlusion, Photon Mapping, Point-based GI
      1. Point-based Global Illumination, Per H. Christensen, PIXAR
      2. A practical guide to using Photon Maps, Henrik Wann Jensen, SIGGRAPH 2000 Course
      3. Ambient Occlusion, Wikipedia
      4. Ambient Occlusion, GPU Gems, CHapter 17, NVIDIA
    6. Augmented Reality
      1. Website of the Augmented Reality Book
    7. Motion Capture
      1. Motion Capture, Wikipedia
      2. BVH File Format, Mike Gleicher, University of Wisconsin
    8. Skinning
      1. Geometric Skinning with Approximate Dual Quaternion Blending, Kavan, Collins, Zara and O’Sullivan, ACM TOG, 2008. (Read Sections 1 and 2. Reading of other sections is optional though is interesting and a good exercise.)
      2. Pose space deformation: a unified approach to shape interpolation and skeleton-driven deformation, Lewis, Cordner and Fong, SIGGRAPH 2000. (Read Sections 1 and 2.3.2. Reading of other sections is optional.)
      3. Introduction to Pose Space Deformation
    9. Inverse Kinematics
      1. Introduction to Inverse Kinematics with Jacobian Transpose, Pseudoinverse and Damped Least Squares methods, Samuel R. Buss, 2006.
      2. IK for Articulated Figure Manipulation, Chris Welman, Master Thesis, Simon Fraser University, 1993 (Locally Mirrored)
      3. Inverse kinematics positioning using nonlinear programming for highly articulated figures, Zhao and Badler, SIGGRAPH 1994.
      4. Inverse kinematics techniques of the interactive posture control of articulated figures, Paolo Baerlocher, PhD Thesis, EPFL, 2001.
      5. SVD (Chapter 3) from Notes on Mathematical methods for Robotics and Vision by Carlo Tomasi (locally mirrored)
    10. Physically Based Animation
      1. Stability Analysis of finite difference methods for ODEs, T Lakoba, Univ. of Vermont.
      2. Physically Based Modeling, SIGGRAPH 2001 Course Notes, Witkin and Baraff. These are the notes referred to during the lectures.
      3. Large Steps in Cloth Simulation, Baraff and Witkin, SIGGRAPH 1998
      4. Robust treatment of collisions, contact and friction for cloth animation
      5. An Introduction to the Conjugate Gradient Method Without the Agonizing Pain, Jonathan R. Shewchuk, 1994.
      6. Particle-based fluid simulation for interactive applications, Muller et al., SCA 2003
      7. Implementing SPH, David Bindell, Course on Applications of Parallel Computers, Cornell University
      8. Time Reversibility, M. Vallieres, Drexel University.
      9. Stable Fluids, Jos Stam, SIGGRAPH 1999
      10. Animating Sand as a Fluid, Zhu and Bridson, SIGGRAPH 2005 (See FLIP and PIC in Sec 4.2 and Surface Reconstruction in Sec 5 in the paper)
      11. Fluid Simulation for Computer Animation, by Robert Bridson.
    11. Motion Graphs
      1. Motion Graphs, Lucas Kovar, Michael Gleicher and Fred Pighin, SIGGRAPH 2002.
      2. Constructing good quality motion graphs for realistic human animation, Liming Zhao, PhD Thesis, UPenn, 2009 (read the chapter on standard motion graphs).
  3. Books

    1. Textbook
      a. Fundamentals of Computer Graphics (Fourth Edition), Peter Shirley, Steve Marschner and others, A K Peters/CRC Press (2015)
      b. Publisher page is here.
      c. Amazon.in page is here.
      d. Flipkart.com page is here.
    2. Other Books
      a. Interactive Computer Graphics - A Top-Down Approach Using OpenGL (6/e), Edward Angel
      b. Computer Graphics using OpenGL (3/e), F. S. Hill Jr. and S. M. Kelley
      c. Computer Graphics with OpenGL (3/e), D. D. Hearn and M. P. Baker
  4. OpenGL Tutorials

    1. LearnOpenGL Tutorials by Joey de Vries
    2. OpenGL.org tutorial listings
    3. Nate Robins' OpenGL Tutorials
    4. OpenGL 4 Tutorials
    5. Anton’s OpenGL 4 Tutorials
  5. 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
  6. Associated Library Websites

    1. GLFW - OpenGL Context management, window and input handling
    2. GLEW - The OpenGL Extension Wrangler Library
    3. GLM - OpenGL Mathematics
  7. Online Readings

    1. 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
    2. Clipping Algorithms
      a. Cohen-Sutherland Line Clipping
      b. Cyrus-Beck (Liang-Barsky) Line Clipping
      c. Sutherland-Hodgman Clipping
    3. Transformations
      a. Homogeneous Coordinates
      b. Euler Angles
      c. Gimbal Lock
      d. Gimbal Lock
    4. Modelling-Viewing Pipeline
      a. Coordinate Systems in the Graphics Pipeline
      b. Modelling-Viewing Pipeline
    5. Visibility
      a. BSP Trees (courtesy the Wayback Machine)
      b. BSP FAQ
      c. The Art Gallery Problem
      d. Quadtrees
      e. More Quadtrees
      f. Octrees
    6. Modelling Curves and Surfaces
      a. Notes on Computing with Geometry
      b. Mathematical Elements for Computer Graphics by Rogers and Adams, Google Books
    7. Hierarchical Modelling
      a. Hierarchical Trasformations
      b. Hierarchical Modelling and Display lists in OpenGL
    8. Shading
      a. Phong Illumination Model
      b. Blinn-Phong Shading
      c. Per-Pixel Lighting
    9. Animation
      a. Principles of Traditional Animation Applied to 3D Computer Animation
      b. Continuity of Parametric Curves
      c. Quaternions and Spatial Rotations
    10. 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