-- CS535 (Fall 2024) --

Interactive Computer Graphics

      

        

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

Classroom: LWSN 1106

Time: TTh @ 12:00-1:15pm

Office hours: by appt

 

Interested in computer graphics? Does modeling objects interest you? Do you like rendering photorealistic imagery? Is doing animations fun to you? Do you like deep learning and AI? All this is part of computer graphics. This course teaches the fundamentals, at a graduate school level, for such activities and research projects. Major topics include:

 

[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, a written assignment, exams, and interactive class participation. The programming assignments consist of a warm-up assignment, three 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 fast forward and final presentation 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. Books

 

There is no mandatory book but here are some recommendations.

 

There are plenty of other good books and I will bring some to class so you can peek at them.

 

 

4. Grading

            Attendance:                            5%

Programming Assignments:   30% (assignments 0-4: 1%, 4%, 7%, 10%, and 8%)

                                                            35% (5% fast forward, 30% final presentation and project)

            Exams:                                                15% (midterm)

                                                            15% (final)

                                                            -----

                                                            100% TOTAL

 

5. Tentative 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 uploaded to 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 – Cook it! (1 week)

Assignment #1 – Project It! (1 weeks)

Assignment #2 – Splat and Squash It! (2 weeks)

Assignment #3 – GPU It! (3 weeks)

Assignment #4 – Write It! (1 week)

 

Final Project (6 weeks). Projects will be presented on a publicly attended “demo day” at the end of the semester (last week 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.

 

 

7. Mid-Project Fast-Forward Presentation

 

In the middle of the final project time period, each project (individual or group), will give a short GRADED “fast forward” 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.

 

8. 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.

 

9. Administrative Issues

Late policy

Assignments are due before class on due date. One late pass is given to each student for use in one of assignment 0 to 4. It provides no penalty for up to one week – it will automatically be applied to the FIRST assignment that is given in late. Second and subsequent times -- grade reduction of 33% per day (e.g., turning in 0.001 to 23.999 hours late implies a grade of 100/100 will become 77/100; turning in 24.000 to 47.999 hours late will convert a 100/100 to 34/100; turning in 48.000 or more hours late is a 0/100). Final project fast forward and final project have no late pass.

 

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 written approval.

 

10. Tentative Schedule

 

August 20, 22

(1 week) HISTORY: Why does it matter?

The beginning: custom hardware

The revolution: mass produced hardware

Programmability: programmable hardware

Visual computing: AI and more

Basic toolbox

[Intro] [Toolbox]

[A0.pdf] [A0.zip]

 

August 27, 29, Sept 3, 5

(2 weeks) GRAPHICS PIPELINE: What’s the big picture?

Vector/Matrix Math

3D to 2D: Cameras

Fixed pipeline

Programmable pipeline (GPUs)

Deep learning augmented pipeline

End-to-end generative graphics modeling

Hierarchical data structures

[LinAlg] [Camera Models General] [Camera Models Std] [Pipeline]

[GPGPU] [GPUSim] [Deep Basics] [Spatial] [GLC]

[A1.pdf] [A1.zip]

 

September 10, 12, 17

(1.5 weeks) RAY-TRACING AND POINT RENDERING: Lets draw rays and points…

Vector math

Intersections

Points only

Splatting

[Ray Tracing] [Path Tracing] [PBR] [Splatting]

[A2.pdf]

 

September 19, 24, 26

(1.5 weeks) POLYGON RENDERING: Drawing polygons because most machines do…

Triangulation

Interpolation of parameters

Curved surface basics

[Triangulation and Voronoi][Surface Triangulation][Curves]

 

October 1, 3

(1 week) SHADING and ILLUMINATION I: Lets color, shade and more.

Diffuse

Specular

Ambient Occlusion

Colors and perception

[Global: [0] [1] [2] [3] [4] [5]]

[A3.pdf]

 

October 10, 15

MIDTERM

10th: Review

15th: Midterm (in class)

 

October 17, 22

(1 weeks) SHADING and ILLUMINATION II: Lets color, shade and more.

Midterm Review

 

 

October 24, 29, 31

(1.5 weeks) IMAGE-BASED RENDERING: Lets make pictures…

Plenoptic function & Lightfields

DL for Graphics

NERFs

[Final Assignment]

 

Nov 5, 7, 14

(1.5 weeks) GENERATIVE MODELING: How to make stuff…

Procedural modeling

Generative Modeling

LLM modeling

 

Nov 12

Final Project Mid-project Review

 

Nov 19, 21

(1 week) STYLE-and-APPEARANCE: I like your style…

Non-photorealistic Rendering (NPR)

Sketching

Deep learning style transfer and more

 

Nov 26, 28 (Thanksgiving)

 

Dec 3, 5: TBD, Course Review