CSC476 - Real-Time 3D Computer Graphics Software Systems

Professor: Zoë J. Wood


Welcome to Real-time 3D games! This class will be taught using C/C++ and OpenGL.

The required book for the class is:
3D Games, Real-time Rendering and Software Technology
Alan Watt and Fabio Policarpo, Addison Wesley Longman, 2001

Supplemental (recommended) Books include:
OpenGL, A Primer
Edward Angel, Addison Wesley Longman, 2002
OpenGL Programming Guide, Third Edition
Edward Angel, Addison Wesley Longman, 1999

More information about this course will be posted soon.
Course material:
syllabus
game report assignment & topics
game report dates and topics
D. Phan: Billboards
Midterm 1 topics
Midterm 2 topics

Programming assignments
Program 1 - simple game
Program 2 - simple game with fractal terrain with visability
Some useful links for program 2:
generating fractal terrains
Prof. Hitchner's lecture notes on terrains, etc.
Fast extraction of viewing frustum planes
BinTriTree splitting algorithm
Program 3 - mesh simplification
Program 3 - updates!!!
Mesh classes for program 3
Updated MeshStructure.cpp for program 3
Updated MeshStructure.h for program 3
Diagram of the local neighborhood for an edge collapse for MeshStructure.cpp collapse
Additional notes about the CollapseEdge for those who are interested
Example executable and resulting files
Progressive Meshes by Hugues Hoppe

*The Final Project Pages*
Final Project Specs
Final Proposal Write-up for Final Project

Lab assignments

Lab1: Compute and display frame rate & Pitch & yaw camera with zoom and translate
Lab2: 3D objects class design with AABB
Lab3: Two different 3D objects with AABB
Lab4:uniform 3D fractal terrain using bintritree

Lab on cg: intro

(Likely lab topics)
Test to compare 2 bounding boxes
Grid creation
Time based character movement
BSP tree for view frustum culling
Frame rate with BSP tree
Quaternions for orientation
Sphere & triangle intersection
Light maps

Lecture and Lab notes


Resources
Many useful game tutorials/information can be found at:
GameTutorials.com
gamedev.net
gamasutra.com
Nehe.gamedev
EA: How games are made
`So you want to enter the game industry' article by B. Humphrey
`So you want to be a game designer?' article by E. Bartlett

General Information about getting started
We will be using OpenGL and GLUT to develop graphics applications in this class. You are welcome to use either C or C++ in conjunction with OpenGL and GLUT to write your programming assignments. A very useful site for information about OpenGL is: http://www.opengl.org/
If you would like to write your programs on your home machine, you will need to download GLUT. You can do so from a variety of places, including: http://www.xmission.com/~nate/glut.html
Or just search for "download glut windows" under google for other options. Likewise a search under google for "install glut windows" under google will give you good reference for installing the library, header and dll files in the correct place.
Anyone who would like to try a different compiler at home (than visual studio) may be interested in this link which lists several free compilers for windows (there are similar resources available for macintosh and linux): http://www.magma.ca/~louievb/gcc/several_free_compiler.html


/several_free_compiler.html