CS 535 Interactive Computer Graphics
-general information-
Administrative
affairs
·
Instructor:
Voicu Popescu, popescu@purdue.edu, office hours by
appointment.
·
Teaching
assistant: see Brightspace.
Purdue Honors
Pledge
·
“As a boilermaker pursuing academic excellence,
I pledge to be honest and true in all that I do. Accountable together - we are
Purdue.”
·
“Academic integrity is one of the highest values
that Purdue University holds. Individuals are encouraged to alert university
officials to potential breaches of this value by either emailing
integrity@purdue.edu or by calling 765-494-8778. While information may be submitted
anonymously, the more information that is submitted provides the greatest
opportunity for the university to investigate the concern.”
Emergency
Preparedness
·
https://www.purdue.edu/ehps/emergency_preparedness/
Additional Help
·
“Purdue University is committed to advancing the
mental health and well-being of its students. If you or someone you know is
feeling overwhelmed, depressed, and/or in need of support, services are
available. For help, such individuals should contact Counseling and
Psychological Services (CAPS) at (765)494-6995 and http://www.purdue.edu/caps/
during and after hours, on weekends and holidays, or by going to the CAPS
office of the second floor of the Purdue University Student Health Center
(PUSH) during business hours.”
·
“Purdue University strives to make learning
experiences as accessible as possible. If you anticipate or experience physical
or academic barriers based on disability, you are welcome to let me know so
that we can discuss options. You are also encouraged to contact the Disability
Resource Center at: drc@purdue.edu or by phone: 765-494-1247.”
Lectures
·
Notes
·
Code
Assignments
·
Assignments
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
- 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.
Voicu Popescu, fall 2023