This course introduces students to computer graphics, techniques for rendering, simulating, and animating virtual environments. The methods are essential for applications ranging from game and movie productions to scientific visualization and computer vision tasks.
The course starts with an introduction to basics concepts such as color, image, and camera. Next, students learn the raytracing technique, a fundamental method for simulating light. While getting familiar with the theory, the students gradually develop a raytracer that handles complex light effects, textures, and animations. The course also introduces rasterization, an alternative approach used for real-time applications. After learning concepts, students implement a simple rendering engine with techniques such as normal mapping and shadow maps. The course ends with an introduction to physics-based simulation and integrating cloth simulation into the rendering.
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.
The course will provide all the materials required for the course.
The following are useful, but not required:
- 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