This course is an introduction to the theoretical and practical aspects of computer graphics. It teaches raytracing and rasterization techniques used for synthesizing images, as well as basic concepts of animation for rendering dynamic scenes.
The course starts with an introduction to raytracing, a method for generating pictures of virtual scenes, used for special effects and animated movies. A basic version of such a raytracer is developed in the first week. While learning about the theory of lighting models, texture mapping, etc., the raytracer eventually handles moving objects, shadows, reflections, and refractions. The second half of the course teaches rasterization, an alternative approach used for real-time applications. After learning concepts, students implement their own rasterizer including rendering techniques such as normal mapping and shadow maps.
The course is a series of lectures interleaved with interactive classes. The assignments consist of both theoretical and practical assignments.
The final grade is a result of the grades from the assignments and the final exam.
- Fundamentals of Computer Graphics; Shirley; AK Peters, 2002
- 3D Computer Graphics; Watt; Addison Wesley, 2000
- Computer Graphics with OpenGL; Hearn, Baker; Pearson, 2003
- Real-time rendering; Akenine-Moller, Thomas, et al.; 4th AK Peters, 2018
- OpenGL Reference Manual and Programming Guide
- Additional material will be provided through the course homepage.