CS 535 Interactive Computer Graphics
-general information-
Administrative
affairs
·
Instructor:
Voicu Popescu,
popescu@purdue.edu
·
Teaching
assistant: Paul Rosen,
rosen@purdue.edu
·
Office
hours:
1. Voicu: Thursday 1:45-2:45 and by appointment, room LWSN 3179
2. Paul:
Tuesday 1:30-2:30 and by appointment; room LWSN 3151
Emergency
preparedness
·
In the event of a major campus emergency, course
requirements, deadlines and grading percentages are subject to changes that may
be necessitated by a revised semester calendar or other circumstances. All changes to this course will be posted on
this website. During an emergency this website will continue to serve as a
means for communication between instructors and students and for disseminating
course materials and assignments.
Lectures
·
Basics
(points, lines, transformations, coordinate systems, rotation about arbitrary
axis)
·
The Planar Pinhole
Camera model
·
Triangle
rasterization
·
Rasterization
parameter interpolation
·
Basic
shading and lighting
·
Texture mapping
·
Projective
texture mapping
·
Panoramas,
environment mapping, reflections & refractions
·
Basics of rendering
with hardware support
·
Reflected
scene impostors
·
Image-based
rendering
·
Midterm
sample questions
·
Additional material
1. Code:
download from here
2. FLTK:
Headers, library files, dlls
and fluid.exe
3. Libtiff: Headers, library files,
and dlls
Assignments
·
Download from here
Prerequisites
- Required
- basic programming
(data structures, algorithms, file I/O, C / C++)
- some basic mathematics
concepts (3D vectors, matrices)
- CS 334, or 434 or some
other exposure to basic 3D computer graphics
Syllabus
We will spend the semester studying and implementing
interactive 3D graphics techniques. The syllabus has three parts.
·
Basics
o Vectors,
matrices, transformations
o Basic
analytical geometry (e.g. points, lines, segments, planes, triangles,
intersections)
o Camera
models, projection, navigation
·
Classic feed-forward rendering
o Rasterization
o Screen
space and model space interpolation
o Basic
shading
o Texture
mapping, projective texture mapping
o Shadow
mapping
o Environment
mapping
o Antialising
o GPU
programming
·
Advanced rendering techniques
o Ray
tracing
o Geometric
modeling
o Image-based
rendering
o Automated
scene modeling (e.g. stereo, structured light, laser range finding)
o Computational
photography
o Camera
model design
The syllabus will be adapted according to time constraints
and student interests.
Required (but Fun)
Work
- Assignments
- 6 total, due every
10-14 days
- Require implementation
of a pipeline stage or rendering technique; they are incremental, you
cannot complete the later assignments w/o having earlier assignments that
work; you are responsible for not falling behind (and for catching up); I
will not give out solutions to the earlier assignments since you need to understand the earlier
assignments.
- credit
- 8% each assignment
- numerous extra-credit
opportunities
- late policy
- once late (up to one
week): no penalty
- late second and
subsequent times: 0 points for assignment
- all assignments are
required by the last day of classes for completion of course
- turn in assignments
via Blackboard Vista
- assignments need to
compile and link and run once downloaded; use relative paths
- include Readme.txt or
Readme.doc file describing your submission
- after you receive the
grade for an assignment you have exactly 1 week for asking for a regrade
- Exams
- Midterm 20%
- Final exam 32%
Cheating policy
- Do not cheat!
- Frequent and thorough scans
for cheating
- If caught automatic failing
grade for the class and reported to the Dean of Students' Office
- Examples of cheating (courtesy
of Gene Spafford)
- Using part or all of
someone else's work, from this or any prior semester, in projects or
homework without the instructor's prior approval;
- Misrepresenting the
functionality of code. That is, if a student submits a project with
falsified output or test data to make it look as if a program works
better than it does;
- Using hidden notes or
hints to answer questions during a test that does not allow open notes or
crib sheets;
- Submitting answers on
homework or projects that were developed or researched by any other
individual and presented as the student's own work;
- Copying text from a
book or paper to include in the student's own writing without clearly
marking it as a quote and citing the source (This is plagiarism and may
be a violation of copyright law as well as cheating.);
- Setting permissions on
files and directories in a student's account so that someone can easily
copy programs and documents, or allowing any other person, in the class
or otherwise, to use your computer account (note that this is also a
violation of department policy or PUCC policy;
- Providing program code
or problem solutions to another student in the class without the
instructor's explicit, prior approval;
- Encouraging anyone to
do any of the above, or failing to report anyone involved in any of these
activities.
Course material
- Recommended texts
- Peter Shirley, Fundamentals of Computer Graphics,
ISBN 1568811241
- Alan Watt, 3D Computer Graphics, ISBN
0-201-39855-9
- Foley, van Dam et al.,
Computer Graphics Principles and
Practice, ISBN 0-201-84840-6
Voicu Popescu, fall 2009