CS535: Interactive Computer Graphics Instructor: Daniel G. Aliaga (aliaga@cs.purdue.edu, www.cs.purdue.edu/homes/aliaga) Classroom: LWSN B134 Time: MWF @ 1:30-2:20pm Office hours: by appointment (LWSN 3177) TA: Gen Nishida (gnishida@cs.purdue.edu) TA Office hours: T/Th 2-3pm (LWSN 3151) Interested in computer graphics? Does modeling objects interest you? Do you like rendering photorealistic imagery? 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: Virtual Reality 3D Scanning Video Games Film Special Effects CAD/CAM Simulation Medical Imaging Image Processing Scientific and Information Visualization 1. Prerequisites Students are required to have previous C/C++ programming experience and are recommended to have previous computer graphics experience, such as OpenGL programming experience (although OpenGL will be reviewed at the beginning of the semester). 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, two minor programming assignments, one homework, and a final project. The exams consist of a midterm and a final exam. Class participation will consist of active participation during class (you be called upon) and a final-project background research review to your classmates. 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! 3. Grading Programming Assignments: 25% (assignments 0-3: 1%, 6%, 8%, 10%) Class Participation: Exams: 30% (final assignment) 15% (10% final-project-review, 5% active participation) 10% (midterm) 20% (final) ----- 100% TOTAL
4. Tentative Lecture Schedule (most current one is on webpage) Math Review August 25 Course Organization, History, Programming at Purdue August 27 Vector Math, 2D Transformations August 29 3D Transformations and Perspective Projection Assignment #0 out Cameras September 1 Labor Day (no classes) September 3 Cameras and Projections: Standard Cameras September 5 Cameras and Projections: Omnidirectional Cameras Assignment #0 due Assignment #1 out Camera Calibration and Graphics Pipeline September 8 Camera Calibration September 10 Camera Calibration September 12 Graphics Pipeline Texture Mapping and GPU Programming September 15 GPU programming September 17 Texture mapping: proj. mapping, environment mapping, bump mapping September 19 Texture mapping: proj. mapping, environment mapping, bump mapping Assignment #1 due Assignment #2 out Surfaces and Triangulation September 22 Voronoi Diagrams September 24 Triangulation, Curved Surfaces September 26 Curved Surfaces Spatial Hierarchies and Visibility September 29 -- Spatial Hierarchies October 1 Culling (View frustum and backface culling) October 3 Visibility Determination Assignment #2 due Midterm October 6 Review October 8 Midterm October 10 Going over exam Procedural Modeling October 13 No Classes (Fall Break)
October 15 Final Projection Explanation Final Projects out October 17 Procedural modeling: plants Procedural Modeling and Ray Tracing October 20 Procedural modeling: terrain, buildings, cities, and more October 22 -- Ray tracing October 24 -- TBA Presentations October 27 In-depth presentations I October 29 In-depth presentations II October 31 In-depth presentations III Illumination November 3 Global Illumination November 5 Ambient Occlusion November 7 Example-based shading Assignment #3 out Colors November 10 Colors: perception and models November 12 Colors: perception and models November 14 Colors: calibration Assignment #3 due Images and Computer Vision November 17 Images: morphing and warping November 19 Images: resizing synthesis November 21 Computer Vision: 3D Reconstruction Visualization November 24 Visualization November 26 Thanksgiving November 28 Thanksgiving Demos! December 1 Demo Rehearsal/How-to-give-a-demo lecture December 3 - TBA December 5 Demo Day! (dead week) December 8 Review for final December 10 TBA December 12 TBA Final Exam see university schedule
5. Assignments You may use CS lab computers or home computers. Assignments must be written in C/C++ on a Windows computer. Assignments are due before class time on the due date and must be sent to the course TA using Blackboard including all source code, data files, and an already compiled program. The time-stamp will be used to verify on time submission. The grading for the assignment will consider functionality and form. All assignments must be polished products, with a well designed user interface and clean, reliable functionality. A program that does not compile obtains 0 points. Assignment #0 Warm up (1 week). The objective is to get a small graphics project working. You can either use (i) OpenGL+GLUT+GLUI or (ii) OpenGL+Qt to implement a simple screensaver style program. The program will open up a window, display a GUI to choose screen-saver options, and draw a simple 2D screen saver in the main window. If you are already well versed in Windows GUI programming, you may use that instead but only upon approval by the instructor. Assignment #1 Linear Algebra (2 weeks): The objective is to ensure you understand well camera models and perspective projection. The logic will be described in class and in the assignment. You can use OpenGL matrix stack to do the linear algebra or implement your own necessary math libraries. Assignment #2 Environment Mapping (2 weeks). The objective is to write a program to implement environment mapping using GPU programming. We will provide a skeleton program but you will have to use OpenGL shading language (GLSL) and CPU code to produce an environment mapping effect. Assignment #3 Written Homework on Advanced Topics (1 week). This objective is a written exam-like homework on some of the relatively more advanced topics. Final Project (7 weeks). Projects will be presented on a publicly attended demo day at the end of the semester (last day of classes, details TBD based on enrollment). You may choose a project that builds upon suggested ones or you may provide a written proposal for an independent project. Team projects (of up to 2 students) are permitted. Grading: the final assignment must be a polished product, with a well designed user interface and clean, reliable functionality. 6. In-Class Presentation (and Class Participation) At the beginning of the final project time period, each project (individual or group), will give a short GRADED presentation about a background literature search of their proposed project. The presentation should include mostly a summary of the state of the art and a short preview of what your project will do. Also, in general students will be called upon during class to explain concepts and solve problems (sometimes in small teams).
7. Exams The midterm will cover material explained in class, stressing fundamentals. The final exam will cover material of the entire semester and will stress understanding of general interactive computer graphics and its fundamentals. Both are closed book and will require understanding and imagination rather than memorization of formulas. A qual exam will be offered after the final exam. 8. Administrative Issues Late policy Assignments are due before class on due date. First time late no penalty for up to one week, but instructor must be notified via email BEFORE deadline (if instructor not notified via email before assignment due date, late pass cannot be used and assignment will be late). Second and subsequent times -- grade reduction of 33% per day. All assignments required by demo day at end of course or failing grade will be issued. Collaboration All assignments, exams, and review presentations must be done individually. Final projects may be done in teams upon approval by the instructor. Copying or plagiarism will give you a failing grade in the course and you will be subject to departmental and University policies. Code obtained from the Internet, books, or other sources may *not* be used for any assignment/project. Exceptions allowed only under explicit instructor approval.