I have left the links to assignments and lectures from the 2004 offering to give you a feel
for the nature of the course.
Be aware that we will deviate from this schedule, in some places significantly.
|Time:||TR 9:30-10:45 PM|
|Instructor:||David Luebke, email@example.com
Office hours: by appointment (Olsson 219)
Ryan Schubert, firstname.lastname@example.org
Office hours: TBD (Olsson 002a)
|Forum:||Use the class discussion forum to discuss anything and everything related to the course or topic of real-time rendering, 3D graphics, 3D games or game engines. This is the place to ask questions about OpenGL or Cg, to tell your classmates about resources on the web, or to communicate with your group. You should check the forum every day or two, especially since the instructor and TA will post news, changes, or help about the assignments.|
Individual assignments: The first two assignments are to be done
Group projects: The remaining assignments will be done in the context of group projects. Each assignment consists of adding a feature to the group's game engine. Sometimes the same feature can be used to satisfy different assignments; of course, each group may only use a single feature once. These projects are to be done individually: you will clearly need to discuss implementation issues amongst your group, and you are welcome to discuss algorithms and structures as well, but the research and coding should be primarily individual efforts.
As a semester-long group project you will work on a real-time rendering
application such as a 3D game. This will likely be the most work you have
ever done for a course project, but should also be the most rewarding.
Most of your individual assignments throughout the semester will take the form
of adding a particular feature to your group's game engine. We will also have at
least one non-game project revolving around virtual reconstructions of important
Be aware that the membership of groups (and thus, the projects that you will work on) may change throughout the semester. There is value to mixing up groups and exposing students to different problems, different group dynamics, and different design styles. However, everyone will get the chance to work on something that excites them for the final project.
Much more detail coming soon on the format and requirements for this project.
|Grade Book:||Check your grades on Toolkit.|
|E-mail:||The class e-mail list is
In general you are encouraged to use the class forum instead of the e-mail list
to ask for help or clarifications on assignments. The e-mail list is mostly for
me to communicate important news to you (such as extensions on assignment
deadlines) in a timely fashion. Please don't send me or the T.A. mail with
specific questions; asking those questions on the forum will (a) share the
question and answer with other students, helping them, and (b) give them a
chance to answer your question faster and yes, often more helpfully, than we'll
be able to.
Check the e-mail archive on Toolkit.
|Feedback:||Send me anonymous feedback on toolkit. Somebody on your team not pulling their weight? Something about the lectures or assignments bugging you? Let me know...I can't promise that I will fix it but I do take this feedback very seriously.|
|Prerequisites:||Grades of C- or better in CS 445, or permission of instructor. You will need significant competence in OpenGL or Direct3D for this course, as well as a solid understanding of the basics of computer graphics. See me if you have any questions.|
|Description:||This course will examine real-time rendering of high-quality interactive
graphics. Applications such as video games, simulators, and virtual reality have
recently become capable of near cinematic-quality visuals at real-time rates. We
will study the advances in graphics hardware and algorithms that are making this
possible. Over several projects throughout the semester students will work in
small teams to develop a small 3D game engine incorporating some
state of the art techniques. Examples of these techniques (and topics we will
cover in class) include non-photorealistic rendering, occlusion culling, level
of detail, terrain rendering, shadow generation, image-based rendering, and
A note of warning: Although the final project is to build a 3D game, this is not exactly a course about building video games: it is about building a 3D graphics engine such as sits under the hood of modern games. The course will be highly technical and a lot of work. We will not touch on many vital aspects of game design: character AI, the production process, artist tools, the network layer (for multiplayer or online games), interface design, multiplatform support, etc. In other words, don't take the class just because you like playing video games.
Some lectures are accompanied by Powerpoint presentations, often from other sources (e.g., NVIDIA presentations at Game Developers Conference). The original presentations will be included below for your convenience. For copyright-related reasons, some of these links will only work if you are browsing from a virginia.edu IP address.
Individual assignment deadlines are showed in red, group deadlines in green.
|Grading:||The final grade will be calculated as a weighted average:
I reserve the right to add a test, quiz, or "practicum exam".
|Late Policy:||I don't want people missing class in
order to work on assignments that are due that day. Hence the policy: assignments are always due at the beginning of class on the due date.
However, if you are in class (on time!) that day, you get a free extension
till 11:59 PM that night. Assignments are due at 11:59 PM if there is no
class that day. Assignments one day late
subtract 10%; two days late loses 30%. Two days (48 hours) after the due date,
the assignment will be considered a zero.
Each student has up to five late days to use at his or her discretion for the individual assignments. Each late day extends the due time by 24 hours. Late days do not apply to group-wide deadlines. Let the TA know how many late days you are taking when you turn in an assignment.
Other books that may be of interest:
See the tools page.
|Honor Code:||The honor code applies to all work turned in for this course. There will be more detailed instructions regarding the use of previously written code (yours and others) with the assignments.|