Interested in computer graphics? Does geometric modeling interest you? Do you like rendering photorealistic imagery? Do you like rendering artistic imagery? Have you ever thought of how to render a communication network? What does it mean to display internet traffic? Is doing animations fun to you? All this is part of computer graphics. This course teaches the fundamentals, at a graduate school level, for such activities and research projects. Major applications include:
1. Prerequisites
Students are required to have previous C/C++ programming experience, knowledge of linear algebra, and are recommended to have OpenGL programming experience. OpenGL will be used during the semester and reviewed at the beginning, but students can/should learn OpenGL on their own. The course focus is on the algorithms and applications.
2. Course work
The course work is composed of programming assignments, exams, and interactive class participation. The programming assignments consist of a warm-up assignment, three incremental programming assignments and a final assignment. The exams consist of a midterm and a final exam. Class participation will consist of active participation during class (you be called upon) and the presentation of a mini-review to your classmates. The mini-review will cover material previously covered in class and will serve to help prepare you for the final exam. Course work will be easier to manage if you keep a constant pace through the semester. This course is hard work but you will learn a lot and have fun!
Classroom: LWSN B134
Time: TTh @ 9-10:15am
Instructor office hours: by appointment
TA: Nathan Andrysco (nandrysc@cs.purdue.edu)
TA Office Hours: Tues @ 2:30-4:30pm
3. Grading
Programming Assignments: 20% (assignments 0-3)
30% (final assignment)
Class Participation: 20% (15% mini-review, 5% active participation)
Exams: 10% (midterm)
20% (final)
-----
100% TOTAL
Detail of how to hand-in assignments
4. Lecture and Assignment Schedule
August 21 – Introduction
August 23 – Programming at Purdue CS, OpenGL, GLUT, GLUI basics
August 28 – Projections and transformations (some images)
August 30 – Cameras and optical aberrations
Assignment #0 due
September 4 – Panoramic and omnidirectional cameras
September 6 – Transformation, rasterization, shading, and lighting
September 11 – Computations with triangles
September 13 – Texture mapping and projective texture mapping
Assignment #1 due
Assignment #2 out (models.zip)
September 18 – Color space and dynamic range
September 20 – Spatial hierarchies
September 25 – Culling
September 27 – TBA
October 2 – Review
Assignment #2 due
Assignment #3 out (makepipe.zip)
October 4 – Midterm
October 9 – Fall break – no classes
October 11 – Midterm Review/Final-Project Preview
October 16 – Ray tracing I: reflections, intersections, efficiency
October 18 – Ray tracing II: higher-order visual effects, anti-aliasing,
Assignment #3 due
October 23 – Procedural Modeling I: grammas, plants
October 25 – Procedural Modeling II: cities, buildings
November 8 – Image-based Rendering: image warping and lightfields in a jiffy
October 30 – Level of Detail, Simplification, Cost/Benefit: meshes, polygon soup
November 6 – Level of Detail, Simplification, Cost/Benefit: quality metrics, adaptation
November 13 – Visualization/TBA
November 15 – Detailed review by Students I
November 20 – Detailed review by Students II
November 22 – Thanksgiving – no classes
November 27 – Detailed review by Students III
November 29 – Thanksgiving – no classes
December 4 – TBA
December 6 – Demo Day
Final Assignments due
Final Exam – see University website