CS 33400 Fundamentals of Computer Graphics
-general information-
Administrative
affairs
·
Instructor:
Voicu Popescu, popescu@purdue.edu
-
Office hour: by appointment
-
Office: LWSN 3179
·
Teaching
assistants and office hours:
-
Ellen Gu, gu251@purdue.edu,
Mondays 1:00pm – 3:00pm, DSAI B055
-
Siyu Huang, huan1882@purdue.edu,
Tuesdays 4:15pm – 6:15pm, DSAI B024
-
Shuqi Liao, liao201@purdue.edu,
Thursdays 4:00pm – 6:00pm, DSAI B024
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.
Prerequisites
- Basic programming (data
structures, algorithms, file I/O, C / C++)
- Some basic mathematics
concepts (3D vectors, matrices)
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 (a subset of the
following topics, time permitting)
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
Required (but Fun)
Work
- Assignments
- 10 total, due
approximately every week
- 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
- 7% 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
- after you receive the
grade for an assignment you have exactly 1 week for asking for a regrade
- Exams
- Attendance 10%
- You can miss 4
lectures without penalty; these include attending conferences, job
interviews, other commitments, health issues for which you do not have a
doctor’s note
- 1% penalty for any
additional missed lecture
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
- Lecture slides, note, and
code
- 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