| Instructor | Course |
| Tan Tiow Seng
Email: tants@comp.nus.edu.sg Tel: 6516-6764 / 6516-6559 S15-06-03 (Office), S15-06-18 (Lab) |
Lecture every Friday, 6:30pm--8:30pm
C1/212A Consultation: by appointment through email. |
Rationale
Many know 3D computer gaming is a huge industry with a tremendous
amount of investments and revenues each year. On the other hand, many of us know
very little about the technologies behind 3D games - these very technologies
have been driving the advances in graphics processor units (GPU) in the recent
years. We now enjoy about twice the GPU's performance (at the same cost) every
six months - thanks to the huge gaming market and everlasting expectations (on,
for example, realism and speed) of gamers. This trend is expected to continue
for many years to come.
Objectives
This module focuses on techniques employed in 3D game engines to achieve
real-time rendering. Major topics include game engine architecture; object
representations and scene graph; level-of-details control; terrain processing;
visibility computation; image-based rendering; collision detection; real-time
shadowing; rendering effects and GPU programming; modeling; networked multi-player games; and AI
techniques. (Topics that may not be discussed are: lighting and
interactive control; animation and dynamic).
Upon completing the module, students will be able to design and build game engines from scratch (assuming a proper use of knowledge learnt in software engineering), and to research and develop new game engine techniques.
Course Prerequisites
Data structures, basic graphics programming (such as using
OpenGL or DirectX as one can learn in CS3241) and some familiarity with
matrices, vectors, analytic geometry, and calculus. This course overlaps
slightly in content with CS4213 - Game Development. As CS5243 is a graduate
course, it emphasizes much more on research work in advanced game programming
technology (rather than in the many facets on game building).
Textbook
and References
The following 4 books contain material that I will be
discussing in lecture. I estimate that the books contain 80% or more of the topics
(not material) that I will be covering. However, I may
concentrate at time on the state-of-the-art issues on each topic and leave quite
a bit of the general reading to you. Additional references will be
provided in due course.
Our textbook and references are available in our Science Library. You are not required to own a copy of the textbook.
Textbook:
Alan Watt and Fabio Policarpo, 3D Games Real-time Rendering and Software
Technology, (volume 1) ACM Press / Addison-Wesley, 2001. (QA76.76
Cga W 2001)
References:
(1) Tomas Akenine-Moller
and Eric Haines, Real-time Rendering, A K Peters Ltd, 2002.
(T385 Mol2002)
(2) Luebke, Reddy, Cohen, Varshney, Watson, Huebner and
Brooks, Level of Detail for 3D Graphics, Elsevier Science, 2003.
( T385 Lev 2003)
(3) Alan Watt and Fabio Policarpo, 3D Games Animation & Advanced Real-time
Rendering, (volume 2) Addison-Wesley, 2003. (QA76.76 Cga W
2003)
| Textbook: | Reference #1: | Reference #2: | |
![]() |
![]() See also http://www.realtimerendering.com |
![]() |
Lectures
There will be 13 lectures. I will try to provide
information on each lecture in advance so that you can do some reading to
prepare for discussion during lectures.
Please be aware that lecture only summarize the main concepts of different
topics, you are encourage to refer to textbook and references given in our
course web-pages to better understand the course material. Please monitor our web
regularly for important announcements too. There is no tutorial for this course,
but you are most welcome to email me to arrange for a discussion on the course
material.
Assignments (40%) There will be 5 lab (programming assignments) to build up a game engine with various common features. You will be given two weeks each (effectively 1 week :) to complete the programming assignment. Skeleton codes may be given to build your game engine. Each programming assignment, on average, is expected to take 1 working day to complete. You are to submit the assignment to ivle workbin by the deadline - workbin will close on the deadline, i.e., late submission is not allowed. Please zip up all your programs, project files, .lib, .h, .dll, etc. to submit as 1 file -- I would expect that when I download your submission and unzip it in my machine, I can immediately compile and run it with no problem -- penalty will be imposed if this is not strictly followed.
Quiz (20%) This will be a MCQ/short questions, closed book, in class test of 1 hour, on 16 November 2007 (Friday) - week #13.
Mini-project
(40%)
There will be 1 project of your choice. You can build a game
based on the game engine you will build from your assignments, or you can choose
topics mentioned during lectures or others of relevance to this course. Types of
work may be a comprehensive survey (lowest in level of difficulty), programming
demonstration using state-of-the-art equipments in Graphics Lab (intermediate in
level of difficulty), novel solutions to some game problems (highest in level of
difficulty). A project proposal must be submitted by 14 September 2007
for
approval. There may be a short presentation by you on 5 October 2007 to report your
progress, and a final presentation will be conducted on the
reading week (19 - 20 November 2007). Final report has to be submitted
by 23 November 2007. Expected effort on you is 60 or more (productive) hours.
Course Grading
This
course has no examination. The course grade is based on your continuous
assessment that includes the above: assignments 40%, quiz 20%, and mini-project
40%.
Date: 4 July 2007