CS 33400 Fundamentals of Computer Graphics
-general information-
FINAL: Wednesday December 17
8:00a – 10:00a HAAS G066
Administrative
affairs
·
Instructor:
Voicu Popescu, popescu@purdue.edu
-
Office hour: by appointment
-
Office: LWSN 3179
·
Teaching
assistant: Chengyuan Lin, lin553@purdue.edu
-
Office hours: Thursday 1:30pm-2:30pm, Friday
10:15am-11:15am and by appointment
-
Office: LWSN B116F #05
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 (pending TA
support)
- 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
- 5% 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 30%
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