-- CS334 (Spring 2012) --

Fundamentals of Computer Graphics

       (Revised to use the latest graphics and gaming development framework!)

 

Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: C:\Users\aliaga\Desktop\gallery-robot.jpgDescription: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: C:\Users\aliaga\Desktop\gallery-inq1.jpgDescription: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: C:\Users\aliaga\Desktop\gallery-ambient-occlusion.jpg

Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: C:\Users\aliaga\Desktop\architecture.jpgcDescription: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: C:\Users\aliaga\Desktop\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: Description: Description: C:\Users\aliaga\Desktop\geomod.jpg Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: C:\Users\aliaga\Desktop\scanner-head-and-david-head-s.jpg

 

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:

 

1. Prerequisites

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!

 

3. Grading

            Programming Assignments:  45% (assignments 0-4)

20% (assignment 5 = final project)

            In Class Presentations:           5% (preview of final assignment)

            Exams:                                    15% (midterm)

15% (final)

-----

100% TOTAL

 

4. Tentative Schedule and Assignments

 

Week 1: overview

Jan 9: course overview and research overview

Jan 11: OpenGL basic program/CUDA/OpenCL/GLUI/GLUT/G3D

Jan 13: vectors/points/matrices

            Asgn 0: Open-GL program using G3D (1 week)  [asgn0-main.cpp]

Week 2: math

            Jan 16: no classes

Jan 18: cameras, perspective, projections

Jan 20: Opengl/G3D use

            Asgn 1: implement classes to do math yourself in prev asgn (2 weeks)

Week 3: graphics pipeline

            Jan 23: modeling, transformation, rasterization, shading and lighting, texture mapping

            Jan 25: bump mapping and environment mapping

            Jan 27: example pixel/vertex shader programs: GLSL spec, GLSL quick reference

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

            Asgn 2: implement GPU shading program using pixel/vertex shaders [asgn2.zip] [asgn2-more.zip] [cartoon][simple-scatter] [fancy-scatter]

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

            Asgn 3: ray tracing which includes diffuse/specular computations using a provided G3D ray tracing program [asgn3.zip]

Week 7: spatial hierarchies and VFC

            Feb 20: binary/quad/oct

            Feb 22: bounding volume

            Feb 24: VFC

Week 8: procedural modeling

            Feb 27: procedural modeling of plants, history

            Feb 29: procedural modeling of buildings/cities

            Mar 2: more procedural modeling and review for midterm

            Asgn 4: procedural modeling program  [ABOP]

Week 9: midterm

            Mar 5: review

            Mar 7: midterm

            Mar 9: go over exam

Week 10: spring break

            No classes

Week 11: NPR

            Mar 19: Nonphotorealistic rendering (NPR)

            Mar 21: Extended Toon Shading and Shading Exaggeration

            Mar 23: Ambient Occlusion

Week 12: animation/collisions

            Mar 26: LOD overview

            Mar 28: LOD generation: operators and error metrics

            Mar 30: LOD VDS

            Asgn 5 (final project): procedural modeling enhanced, NPR, game, or self-proposed [makepipes.zip]

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 16: Comments on Final Assignment; 3D computer vision I

            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!

 

 

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

 

6. 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 20% per day. All assignments required by demo day at end of course or failing grade will be issued.

 

Collaboration

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.