[ Homepage ] [ CSC Homepage ] [ NCSU Homepage ]

CSC 461: Graphics in Game Design
MW 12:50-2:05 1226 EB-II

Instructor Information

Instructor: Christopher G. Healey
Contact: 2266 EB-II
healey@csc.ncsu.edu
Office Hours: M 10:00-11:00 in 2266 EB-II, or by appointment
TA: JuHee Bae
TA Contact: jbae3@ncsu.edu
TA Office Hours: Th 2:00-3:00 in 2244 EB-II

Assignments

Supplemental Material

Copies of the class notes are also available in the table of course schedule topics below.

Asteroids Demos

Introduction

My goals for you are to:

Textbooks

Text:
  1. Introduction to Computer Graphics, J. Foley, A. Van Dam, S. Feiner, J. Hughes, R. Phillips, Addison-Wesley Longman, Inc.

Supplemental
Texts:
  1. 3D Games: Volume 1: Real-Time Rendering and Software Technology, A. Watt and F. Policarpo, Addison-Wesley Longman, Inc.
  2. 3D Games: Volume 2: Animation and Advanced Real-Time Rendering, A. Watt and F. Policarpo, Addison-Wesley Longman, Inc.
  3. Interactive Computer Graphics, A Top-Down Approach with OpenGL (2nd edition), E. Angel, Addison-Wesley Longman, Inc.
  4. OpenGL Programming Guide (3rd Edition), M. Woo, J. Neider, and T. Davis, Addison-Wesley Longman, Inc.

Course Overview

This course offers an introduction to fundamental topics in computer graphics, with an emphasis on designing and implementing medium-sized programs using the OpenGL and GLUT graphics APIs. Students will learn about 2D and 3D transformations, perspective and orthographic projection, and the mathematical foundations that underlie these operations. We will next discuss how to draw basic geometric primitives (e.g., lines, circles, polygons), as well as clipping, depth buffering techniques, and scan conversion to rasterize the primitives to the screen. This is followed by an introduction to the built-in lighting operations in OpenGL. We will conclude with a discussion of game-related topics in graphics (e.g., space partitioning, collision detection, shadows).

This course serves as an allowable prerequisite for CSC 462: Advanced Undergraduate Computer Graphics.

Below is a tentative course schedule. Please note that time frames and topics will be confirmed in class and are subject to possible changes.

  1. Introduction (1 week)
    • graphics pipeline
    • overview of transformation, projection, clip, rasterize sequence

  2. Transformations (2 weeks)
    • 2D and 3D transformations in OpenGL (translate, rotate, scale)
    • matrix form of 2D and 3D transformations
    • homogeneous coordinates

  3. Projections (2 weeks)
    • overview of perspective and orthographic projection
    • virtual camera model
    • perspective projection in OpenGL
    • orthographic projection in OpenGL
    • canonical projection volumes in OpenGL

  4. Lighting (2 weeks)
    • surface normals
    • flat and smooth shading in OpenGL
    • ambient, diffuse, specular light properties
    • limitations on lighting in OpenGL

  5. Rendering Basic Primitives (2 weeks)
    • Bresenham line and circle drawing
    • polygon scan conversion

  6. Rasterization (2 weeks)
    • back-face culling
    • line and polygon clipping
    • Z-buffer hidden surface removal

  7. Game Topics (4 weeks)
    • visibility processing with binary space partitioning (BSP) trees
    • collision detection
    • shadows
    • light maps
Topic
Introduction to Computer Graphics
Foley, van Dam, Feiner, Hughes, Phillips
Class Notes (PDF)
Graphics Pipeline    Ch. 1 pipeline.pdf
Transformations       Ch. 5.2-5.5, Ch. 5.7-5.9 transform.pdf
Projections       Ch. 6.1-6.5 project.pdf
Clipping       Ch. 3.8-3.9.3 clip.pdf
Display Technolgies       Ch. 4.2 display_tech.pdf
Lighting       Ch. 14.1-14.2 lighting.pdf
Ray Tracing       Ch. 14.7 raytrace.pdf
Line Drawing       Ch. 3.2 bresenham.pdf
Z-buffer       Ch. 13.2 z-buffer.pdf
Scanline Conversion       Ch. 3.5 scanline.pdf
Shadows       Ch. 14.4-14.4.1 shadow.pdf
BSP       Ch. 10.6.4 BSP.pdf
Collision Detection       Assignment 3 Handout
Texture Mapping       Ch. 14.3-14.3.1 texture_map.pdf
Cel Shading       Ch. 14.7 cel_shade.pdf
Reflections    http://www.opengl.org/resources/code/rendering/mjktips/Reflect.html reflection.pdf
Lens Flare       http://www.opengl.org/resources/features/KilgardTechniques/LensFlare/
   http://www.gamedev.net/reference/articles/article813.asp
lens_flare.pdf
Flocking       http://www.red3d.com/cwr/boids/ flocking.pdf

Schedule of Reading Assignments

Apart from material in the textbook related to individual lectures, no additional readings will be assigned. Students will be informed in class at the beginning of each week which sections of the textbook will be covered during that week’s lectures.

Homework and Test Schedule

All assignments will be submitted with Wolfware, the university's web-based assignment submission system. The submission system can be accessed via http://courses.ncsu.edu/csc461.

Homework 1: Due midnight Friday, September 11; "Asteroids: Modelling and Wireframe Rendering"
Homework 2: Due midnight Friday, October 2; "Asteroids: Motion and Lighting"
Homework 3: Due midnight Friday, October 30; "Asteroids: Collisions and Gameplay"
Homework 4: Due midnight Friday, December 4; "Asteroids: Alien Ships and Extensions"

Midterm Exam: 12:50-2:05 Wednesday, October 14, 1226 EB-II
Final Exam: 1:00-4:00 Monday, December 14, 1226 EB-II

Grading

Grades for the course will be made up from four assignments, a term project, and a final exam. You are expected to attend all lectures, read all relevant portions of the text, and read any on-line notes and programs I provide. Missed exams cannot be made up without an official university excuse. Homework should be submitted via Wolfware by 11:59PM on the due date. Late homework will not be accepted under any circumstances.

Final grades will be calculated as follows, using +/- grading:

Homework: 40%
Midterm Exam: 20%
Final Exam: 40%

Students who audit CSC 461 will be marked AU or NR. They will be required to obtain a passing grade (60% or better) on the average of their four homework assignments and the midterm. They will not be required to write the final exam.

Late or Missed Assignments

Missed assignments and exams cannot be made up without an official university excuse. Contact me as soon as possible if you need to discuss reasons for late or missed assignments or exams.

Class Absences

If you miss (or plan to miss) class(es), contact me as soon as possible to identify the material to be covered during your absence. You are expected to "make up" the material by reading the appropriate section(s) in the textbook, and meeting with me as necessary to discuss the material.

Prerequisites

Registered as an honours computer science (CSC) student, or with permission of the instructor. If you do not satisfy either of these requirements, your registration in CSC 461 will be cancelled. You are also expected to have a solid foundation in C or C++ programming, data structures, linear algebra, and single-variable calculus. You are not expected nor required to have previous knowledge of computer graphics. All instruction will be in C++.

Academic Integrity

The university provides a detailed policy on academic integrity. This policy can be found in the Code of Student Conduct. It is understood that when you sign and submit your homework, term project, and final exam, you are implicitly agreeing to the university honor pledge: "I have neither given nor received unauthorized aid on this test or assignment."

Academic dishonesty (e.g., cheating or plagiarism) will not be tolerated under any circumstances. If you are having difficultly with any part of the course material, please see me or the TA as soon as possible. I will do everything I can to help you with any course-related problems you may be having. If you are found to be guilty of academic dishonesty, however, I will then do everything I can to see that you are punished as forcefully as possible. This may include asking to have you suspended or expelled from the course, the program, and/or the university. At a minimum, you will receive -50% for the assignment or exam in question, and your name will be placed on record with the university as having committed an academic offence (multiple offences during your academic career will result in suspension or expulsion from the university). I take absolutely no pleasure in pursuing cases of academic misconduct, and would ask that you please do not put me in this position.

Compliance will be monitored by the MOSS software, which is very good at detecting similarities in programs. MOSS has been used to successfully identify cases of copying or plagiarism in a number of CSC courses, and will be applied to all programming assignments you complete.

Students With Disabilities

All effort will be made to ensure that no students with disabilities are denied any opportunity to successfully complete this course. If you have specific requirements that need to be addressed, please contact me immediately. Possible changes can include (but are not necessarily limited to) rescheduling classes from inaccessible to accessible buildings, or providing access to auxiliary aids such as tape recorders, special lab equipment, or other services such as readers, note takers, or interpreters. This may also include oral or taped tests, readers, scribes, separate testing rooms, or extension of time limits.


Last updated, Wed, Sep 5, 2007, email comments to healey@csc.ncsu.edu.