-- CS535 (Fall 2014) --

Interactive Computer Graphics

Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: \\arthur.cs.purdue.edu\aliaga\.www\cs535-10\geomod.jpg    Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: \\arthur.cs.purdue.edu\aliaga\.www\cs535-10\photorealistic_rendering_6_after.jpg   Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: \\arthur.cs.purdue.edu\aliaga\.www\cs535-10\architecture.jpg

     Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: \\arthur.cs.purdue.edu\aliaga\.www\cs535-10\network.gifDescription: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: \\arthur.cs.purdue.edu\aliaga\.www\cs535-10\animations.jpg    Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: \\arthur.cs.purdue.edu\aliaga\.www\cs535-10\scanner-head-and-david-head-s.jpg

Instructor: Daniel G. Aliaga (aliaga@cs.purdue.edu, www.cs.purdue.edu/homes/aliaga)

Classroom: B134

Time: MWF @ 1:30-2:20pm

Office hours: by appointment (LWSN 3177)

TA: Gen Nishida, gnishida@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

 

[Course summary PDF]

 

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%)

                                                            30% (final assignment)

            Class Participation:                15% (10% final-project-review, 5% active participation)

            Exams:                                    10% (midterm)

                                                            20% (final)

                                                            -----

                                                            100% TOTAL

4. Tentative Lecture Schedule

 

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

[GLuiTest.zip]

[QtTest.zip]

Special TA office hours: Tue Sept 2, 10-3pm

 

Cameras

September 1 – Labor Day (no classes)

September 3 – Cameras and Projections: Standard Cameras

September 5 – Cameras and Projections: Omnidirectional Cameras

[Paraboloidal Catadioptric Camera paper]

            Assignment #0 due

            Assignment #1 out

[GLC paper]

[Another GLC paper]

 

Camera Calibration and Graphics Pipeline

September 8 – Camera Models

September 10 – Camera Calibration

September 12 – Graphics Pipeline (xform, shade, rasterize)

 

Texture Mapping and GPU Programming

September 15 – GPU programming

September 17 – GPU programming: Physically Based Simulations

September 19 – GPU programming: Physically Based Simulations

            Assignment #1 due

            Assignment #2 out

[GLuiGPGPU.zip]

[GLSL Spec]

[GLSL Quick Ref]

 

Surfaces and Triangulation

September 22 – Voronoi Diagrams and Delaunay Triangulation

September 24 – Curves

September 26 – Surface Triangulation

 

Spatial Hierarchies and Visibility

September 29 -- Spatial Hierarchies

October 1 – Visibility and Culling

October 3 – TBD

            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, noise, inverse procedural modeling, and more

October 22 -- Procedural modeling cont’d;

October 24 – Ray-tracing

 

Presentations

October 27 – In-depth presentations I

October 29 – In-depth presentations II

October 31 – In-depth presentations III

 

Illumination

November 3 – Global Illumination and Radiosity; Path Tracing

November 5 – Ambient Occlusion

November 7 – BRDFs and 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 – Deep Learning and Vision (guest lecture)

 

Visualization

November 24 – TBD

November 26 – Thanksgiving

November 28 – Thanksgiving

 

Demos!

December 1 – Demo Setup/How-to-give-a-demo lecture

December 3 - TBD

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 screen-saver 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 – GPU Programming (2 weeks). The objective is to write a program to implement GPU programming for environment mapping or another TBD topic. We will provide a skeleton program but you will have to use OpenGL shading language (GLSL) and CPU code to produce the 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.