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:
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
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]
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
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