EECE 478: Computer Graphics

Lee Iverson
Sunny Yuen <sunnykhy AT>
TTh 14:00-15:30  Chem/Bio 102
Office Hours:
Lee Iverson
Kaiser 4048
This course is an introduction to computer graphics using OpenGL. This means a number of things, including a crash course in linear algebra as it relates to points, lines, and planes in three dimensions and some simple projective forms. We will also consider the nature of the graphics pipeline in modern graphics processors and as it is represented in the programming APIs that allow us to manipulate and interact with graphical objects on computer screens.
The course will be structured in two halves. Prior to the midterm exam we will deal with the material in a fairly traditional classroom form accompanied by three small programming projects. During this part of the term, we will be covering the material very quickly, so it will be essential to read the assigned chapters in the textbook before coming to class. Classroom time will be spent working through the difficult concepts in the readings and providing more dynamic illustrations of these concepts.

The second half of the term will be devoted to a large programming project, working in teams of 3 to 5. You will be required to design, develop and demonstrate a 3D graphical computer game. During this time, there will be one lecture a week on some more advanced topics that may aid you in your development, with the other two class hours operating as supervised laboratory time. A large list of resources will be made available, both in reserve and online.
Textbook: Edward Angel, "Interactive Computer Graphics: A Top-Down Approach Using OpenGL" (4th ed.), Online Textbook Material, including source code.
The main software APIs used in the instructional examples for this course will cover the standard OpenGL APIs and the GLUT and GLUI toolkits for user interface development. These should all be equally usable on Linux or MS Windows systems, so either OS is usable.
The course grade will be divided up as such:
  • 20% for three class-oriented programming projects (individual)
  • 30% for a midterm examination (individual)
  • 25% for the term project report and development logs (group and individual)
  • 25% for the term project demo (group)
The programming assignments will be graded based on the "Guidelines for Marking Programming Assignments". The project demos will all take place Dec 2? and will be adjudicated by a panel including the instructor, TA and representatives from industry.
Students are expected to attend all lectures in the first half of the term and to take advantage of the targeted lectures. It is very important that the assigned chapters should be read prior to the lectures in the first half of the term, since we will be moving through the material quickly. In the second half of the term the class hours of T/Th 14:00-15:30 will be supervised time in the computer labs for any team or individual needing coding or debugging help. 
A page of resources for OpenGL and GLUT programming and for computer game development.
You will be able to choose your project teams. Email the list of team members to Dr. Iverson by Sep 15. The project teams will be posted when  established and an outline of the project requirements is also available.
  • For the Project Demo, fill in the red ??? spaces (reset them to black) in the judging form. and print out 4 copies for the judges to use in the demo session.
The team assignments will be made available when finalized.

Jan 8, 10
Ch. 1 Introduction
Jan 15, 17
Ch. 2 Graphics Programming
PDF Code
Jan 18

Team choices to be nominated (by email to leei+478@ece...)

Jan 17

Assignment 1

Jan 22, 24
Ch. 4 Linear Algebra and 3D Geometry
Jan 24

Assignment 1 due
Jan 29, 31
Ch. 5 Viewing and Projections
Jan 31

Assignment 2

Jan 31

Game Project

Feb 5, 7
Chs. 6&7 Shading, Lighting and Texture Mapping
Feb 7

Assignment 2 due
Feb  12

Assignment 3

Feb 12, 14
Chs. 8&9 Rendering and Scene Graphs
Feb 19, 21

Midterm Break


Advice for Game Design and Development
Feb 26

Game Physics
Feb  26

Assignment 3 due
Feb 28

Mar 4

GPU Programming
Mar 6

Multi-pass Rendering
Mar 11

Midterm Examination (2003, 2006)

Mar - Apr

Project work

Apr  14

Project reports due (5pm) by email to leei+478 AT
Sample 1
Sample 2
Apr 18

Demo day! (3:30pm - 6pm).

Please fill out attached form (PDF or PPT)
and print 4 copies for the demo.

Final Exam (none!)

"Finals? Finals? We don't need no steenking finals!"