Logged in as:
15:30-17:30 Tuesdays TBA and 13:30-14:30 Thursdays TBA
You are responsible for material in the lectures. Notes are often posted afterwards.
Office Hours: 9:00 - 11:00 Monday or By appointment
Technically, Computer Graphics and Good C++ programming skills.
The course home page is the primary place for announcements. Please check it regularly. There is an RSS feed available for it.
Tomas Akenine-Möller and Eric Haines. Real Time Rendering, 3e.
- This book is specifically about real-time rendering, and is very useful if you're interested in interactive stuff like games. It is really well written, and has great discussions of a lot of the basic topics. The new edition just came out (so new its out of stock most places), and is quite encyclopedic. Its an awesome reference book, but a little hard to learn from, so I highly recommend it if you are serious about graphics.
* Real Time Rendering at Amazon
This book is optional - it won't be used for class readings. However, it is a great reference, and I recommend it if you're serious about graphics.
Mason Woo, et al. The OpenGL Programmer's Guide.
- This is sometimes known as the "red book."
* The current edition is the 6th edition, but for the purposes of this class an older edition would be OK too. If you don't want to buy this book, the complete contents of the older version is online in html. There used to be an online PDF version as well, but it seems to have vanished. The old edition is OK for most things, the critical chapter in the 6e will be provided online in class.
* OpenGL Programmer's Guide at Amazon.
* There will be some readings from this book, and its an important reference.
The Cg Tutorial: The Definitive Guide to Programmable Real-Time Graphics.
- Cg is the key to unlocking the power of a new generation of programmable graphics hardware. This book is the definitive introduction to Cg, and will be essential for anyone programming high-quality real-time graphics. The Cg Tutorial will teach you to use Cg to create effects never before available for real-time applications."
- The Cg Tutorial explains how to implement both basic and advanced techniques for today's programmable GPU architectures.
- Major topics covered include:
- 3D transformations
- Per-vertex and per-pixel lighting
- Skinning and key-frame interpolation
- Environment mapping
- Bump mapping
- Performance optimization
- Projective texturing
- Cartoon shading
Mark DeLoura (Ed.), "Game Programming Gems", Charles River Media, 2000.
- For the countless tasks involved in creating a game engine there are an equal number of possible solutions. But instead of spending hours and hours trying to develop your own answers, now you can find out how the pros do it! Game Programming Gems is a hands-on, comprehensive resource packed with a variety of game programming algorithms written by experts from the game industry and edited by Mark DeLoura, Software Engineering Lead for Nintendo of America, Inc.
Gregory Junker "Pro OGRE 3D Programming",
- Pro OGRE 3D Programming is your detailed guide to utilizing the OGRE 3D engine, one of the best-in-breed 3D rendering libraries available. You'll learn what OGRE is, and more importantly, what it is not. OGRE gives you an object-oriented interface to render 3D scenes independent of the implementation, such as Direct3D or OpenGL. OGRE is available on Windows, Mac OS X, and Linux. It can be utilized to create a variety of 3D-based applications and is commonly used in game creation.
There will be 2 exams, counting for 30% of your grade.
- Exams are difficult to reschedule, and arrangements must be made ahead of time. Please contact me at the beginning of the semester if you foresee there being a problem.
- Projects (15, 15, 50% each): 80%
- Midterm: 10%
- Final: 10%
Generally, the projects are worth the most.
See the Policy Page for more details.
This class has been assigned to the computing labs that contain computers running Windows XP. Programming assignments is designed for APIs and C++. There is a page on the programming tools used in this class
There will be 3 projects. The first and second projects are set up for training your programming skills. The final project is game design.
This course was carefully titled to indicate its content. It covers various computing technologies useful for computer game development. It does NOT cover game development as a topic in itself, nor does it cover game design, and it doesn't even cover all the computing technology that might go into a game (one glaring oversight is audio).
Some of the course content may be covered by other NTUST CSIE courses, but the emphasis in this course will be on real-time performance. This course will also, no doubt, contain many basic computer science algorithms in an application setting that tend not to be covered in other courses, such as spatial data structures.
- Anatomy of a Game
- Introduction to Lag
- Drawing Things
- Mapping Techniques
- Bump mapping
- Light maps
- Environment maps
- Interesting uses for Textures
- Multi-Pass Techniques
- Buffers in the Graphics Pipeline
- Interesting use for Buffers
- Programming Graphics Hardware
- Spatial Data Structures
- BSP Trees
- Spatial Hashing
- Level of Detail
- Impostors or Proxies
- Decimation Schemes
- Switching Representations
- Progressive Schemes
- Cell-Portal Methods
- PVS Computations
- Terrain Generation
- Terrain Rendering
- Making Things Move
- Event Driven AI
- State Machines
- Scripting AI
- Path Planning
- A* Planning
- Storing Paths
- Path Following
- Collision Detection
- Motion Capture and Playback
- Player and Camera Control
- Playing with Others
- Player and Camera Control
- Network Architectures
- Network Protocols for Gaming
- Lag Compensation
- Reducing Traffic
- Area-of-Interest Management
- Cheating and Fixes