Instructor: Daniel G. Aliaga
Classroom: Grimson Hall 280 (LWSN B160 for PSO)
Time: Lecture MWF @ 1:30-2:20pm, PSO Mon @ 9:30-11:20am or Mon @ 11:30-1:20pm, or Tue @ 1:30-3:20pm
Office hours: by appt
TA: Yi-Liu Chao, chao1 at purdue dot edu (for PSO) and Swetha Lakshmanan, slakshma at purdue dot edu (for grading)
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 an undergraduate school level, for such activities and research projects. Major applications include:
Students are required to have previous C/C++ programming experience. Knowledge of linear algebra is strongly recommended. Previous computer graphics experience is beneficial but not mandatory.
2. New Framework
The course is being significantly revised this semester! The course work is composed of programming assignments, exams, and interactive class participation. OpenGL, GPU shading, and G3D will be used during the course; a review of these tools will be indirectly given during beginning of the semester.
Assignments will build upon the G3D Innovation Engine, which is a commercial-grade C++ 3D engine available as Open Source (BSD License). It is used in commercial games, research papers, military simulators, and university courses. G3D supports hardware accelerated real-time rendering, off-line rendering like ray tracing, and general purpose computation on GPUs.
G3D provides a set of routines and structures so common that they are needed in almost every graphics program. It makes low-level libraries like OpenGL and sockets easier to use without limiting functionality or performance. G3D is a rock-solid, highly optimized base on which to build your 3D application.
It will enable quick development of:
- OpenGL-like programs,
- GPU shading programs,
- Ray tracing and other complex illumination algorithms,
- Procedural modeling, and
- Gaming systems!
The programming assignments consist of a warm-up assignment, four programming assignments and a final assignment. The exams consist of a midterm and a final exam. In-class participation will consist of presenting a preview of your final assignment (schedule arranged later). 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!
Programming Assignments: 45% (assignments 0-4)
20% (assignment 5 = final project)
In Class Presentations: 5% (preview of final assignment)
Exams: 15% (midterm)
4. Tentative Schedule and Assignments
Week 1: overview
Jan 13: vectors/points/matrices
Week 2: math
Jan 16: no classes
Jan 20: Opengl/G3D use
Asgn 1: implement classes to do math yourself in prev asgn (2 weeks)
Week 3: graphics pipeline
Week 4: shading and lighting
Jan 30: shaders: diffuse/specular
Feb 1: shaders: bump mapping, environment mapping
Feb 3: shaders: displacement mapping, scattering, BRDFs, etc
Week 5: image processing
Feb 6: image warping/blending
Feb 8: view morphing, image warping
Feb 10: demos using image processing program and Wolfram Demonstration Projects
Week 6: ray tracing
Feb 13: ray casting, intersection tests
Feb 15: reflection, transmission
Feb 17: area-based, soft shadows, etc
Week 7: spatial hierarchies and VFC
Feb 20: binary/quad/oct
Feb 22: bounding volume
Feb 24: VFC
Week 8: procedural modeling
Mar 2: more procedural modeling and review for midterm
Week 9: midterm
Mar 5: review
Mar 7: midterm
Mar 9: go over exam
Week 10: spring break
Week 11: NPR
Mar 23: Ambient Occlusion
Week 12: animation/collisions
Mar 26: LOD overview
Mar 30: LOD VDS
Week 13: simplification and visibility
Apr 2: Visibility Culling
Apr 4: Guest Lecture: 3D Urban Modeling
Apr 6: Student Presentations I
Week 14: mid-project presentations
Apr 9: Student Presentations II
Apr 11: Student Presentations III
Apr 13: Student Presentations IV
Week 15: special topics
Apr 18: 3D computer vision II
Apr 20: projector/camera systems
Week 16: pre-demo
Apr 23: how to present
Apr 25: review for final
Apr 27: demo day!
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.
6. Administrative Issues
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 20% per day. All assignments required by demo day at end of course or failing grade will be issued.
All assignments and exams must be done individually. 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. Exceptions allowed only under explicit instructor approval.