COL781: Computer Graphics

II Semester 2022-23

Course Description

This course provides a broad introduction to the fundamentals of computer graphics. It will start from the key theoretical and mathematical foundations and build up to practical implementation of complete graphics programs, with a focus on both real-time 3D rendering and high-quality offline graphics. A range of topics in the main areas of modeling, rendering, and animation will be covered.

Content: Foundations: rasterization, transformations in 2D and 3D, homogeneous coordinates, perspective projection, visibility, texture mapping. Modelling: polygon meshes, Bezier curves and surfaces, subdivision surfaces, mesh processing, geometric queries. Rendering: radiometry, shading models, the rendering equation, path tracing. Animation: skeletal animation, skinning, mass-spring systems, time integration, physics-based animation.

Textbooks: There is no required textbook, but it is recommended to keep one of the following as supplementary reading:

Prerequisites: COL106 or equivalent. Familiarity with C++ programming and basic linear algebra is assumed.

Announcements: All announcements will be made on the Announcements forum of the course Moodle site. It is your responsibility to check it regularly.

Lectures

Slides will be posted here as the semester proceeds.

Tuesday Wed/Thursday Friday/Sat
Week 1 1. Introduction 2. Rasterization 3. Sampling and aliasing
Week 2 4. Transformations 5. Affine transformations 6. Perspective projection
Week 3 7. Perspective and visibility 8. Interpolation and texturing 9. Texture filtering
Week 4 10. The rasterization pipeline 11. Transparency and shading
12. Ray tracing
Week 5 13. Ray tracing 14. Introduction to modeling 15. Bézier curves
Week 6 16. Bézier and subdivision surfaces
Week 7 17. Polygon meshes 18. Mesh editing and querying 19. Spatial data structures
Week 8 [Class cancelled] 20. Radiometry
Week 9 21. Colour 22. Material appearance 23. The rendering equation
Week 10 24. Path tracing 25. Variance reduction 26. Bidirectional methods
Week 11 27. Real-time rendering
Week 12 28. Real-time global illumination 29. Rendering wrap-up 30. Introduction to animation
31. Skeletal animation
Week 13 32. Skinning
Week 14 33. Particle dynamics 34. Mass-spring systems
Week 15 35. Stiff systems and constraints 36. Collision processing 37. Continuum models
Week 16 38. Solids and fluids 39. Fluid simulation 40. Conclusion

Assignments

All dates of future assignments are tentative and subject to change.

  1. Software rasterization (18 Jan – 14 Feb)
  2. Mesh processing (14 Feb – 14 Mar)
  3. Path tracing (16 Mar – 11 Apr)
  4. Simulation and keyframing (18 Apr – 12 May)

Policies

Evaluation:

The above grading breakdown is tentative and subject to change.

Grading: Following institute policy, a minimum of 80% marks are required for an A grade, and minimum 30% marks for D.

Late policy: Homework assignments are due at 11:59pm on the due date. You are allowed a total of 4 late days across all the assignments. After the total allowed late days have been used up, a 25% penalty will be applied for each extra day a submission is late.

Audit policy: To earn an audit pass, you must score at least 40% in the course total, and at least 20% in each assignment and each exam.

Attendance policy: Attendance lower than 75% may result in a one-grade penalty (e.g. A to A–, or A– to B).

Academic dishonesty: Adapted from SAK’s general guidelines for students:

Remember that you have signed an honour code before getting admitted to IIT Delhi. Check that out on the inside cover page of your prospectus. Here is a non-exhaustive list of dishonest behaviour in assignments, based on past experience.

Please note the following points in addition.