CS 3600 -- Computer Graphics I -- Fall 2001

Dr. Steve Cunningham
rsc@cs.csustan.edu, +1.209.667.3176

Class 2:30-3:57 pm, P-114

This course is an introduction to computer graphics, emphasizing graphics programming using OpenGL, graphical problem solving, and effective visual communication.  The course will cover the primary components of image synthesis, including geometry, transformations, lighting, shading, and texture mapping, as well as the basis of interaction such as events, callbacks, and object selection.  The course projects will emphasize applications of graphics in the sciences and mathematics.

Prerequisites : sound programming skills equivalent to successful completion of CS 2500.  Solid 3D analytic geometry and spatial thinking skills are also useful.

Course content : the course will be based on a manuscript the instructor is developing that is available online (see the links below).  It will cover all the topics above, with an emphasis on modeling and on communication. The course projects will emphasize examples of graphical programming for scientific studies and effective communication through images.  There is no formal ordering of topics for the course, but the contents of the course notes is probably a fairly good approximation of the sequence in which we will cover material.

Instructor and text:   Dr. Cunningham’s office is P-283 and his office hours are Tu/Th 1:15-2:15 and W 1:15-3:15.  The course uses the instructor's manuscript notes instead of a formal textbook.  In addition, you may want to get the OpenGL Programmer’s Guide and/or the OpenGL Manual from Addison-Wesley, or the OpenGL SuperBible (but watch out for Windows-only tricks in the latter!)

Dr. Cunningham regularly attends various graphics events and has served in several positions with ACM SIGGRAPH and EUROGRAPHICS, and <commercial> you are all encouraged to join ACM , ACM SIGGRAPH and EUROGRAPHICS as student members to see what is happening in the larger world of computer science and computer graphics. </commercial>

Resources and examples:

A number of materials will be posted here as the term progresses.  It is your responsibility to check this page from time to time between class meetings just in case your instructor should get ambitious and put up additional material that you could use to help you in your work.  Note that some of the materials here will require that your browser have the Acrobat Reader plug-in installed.  The chapter list is subject to rearrangement as the writing project progresses.

Projects:

Projects will be somewhat different from the traditional computer science project.  After the first get-started assignment, each will ask you to identify a problem in science and discuss the graphical representation of that problem, and will then ask you to write a program that implements that representation.  When this is finished, you will be asked to discuss the graphical representation and what it tells you about the problem.  This will let you create a context for the programming that is very important in the graphical world.

Your projects will be evaluated by being compiled on the instructor's Macintosh system, so you must be careful not to use any system-dependent techniques unless you provide alternate system-independent versions and an #ifdef / #endif conditional compilation structure.  There are Macintosh systems available in the laboratory in case you want to check your code in this environment.

Project 1 :  Modify an existing program to include other options
Project 2 :  Model and present a simple science problem
Project 3 :  Extend the presentation of the second project by using lighting and shading
Project 4 :  Build an interactive presentation with the interaction tools provided by OpenGL
Project 5 :  Create a texture-mapped spline surface and allow the user to view it from any point

Grading and exams:   Your instructor will give grades based on projects and an examination at the end of the semester.  Grading standards are based on correct coding and output for projects and correct and well-thought-out responses for examinations.  The initial plan is for grades to be based upon course projects (50%) and an examination (50%) but that is open to discussion.  Projects will be assigned as the semester progresses, and the examination will be given at the end of the semester at the time designated in the class schedule:  2:00-4:00 pm, Thursday, December 13.

Acknowledgements and copyright:  The course notes and many examples were developed with the support of National Science Foundation grant DUE-9950121 and with sabbatical support from California State University Stanislaus.  All opinions, findings, conclusions, and recommendations in this work are those of the author and do not necessarily reflect the views of the National Science Foundation.  The San Diego Supercomputer Center also generously provided resources to support this work.  All are gratefully acknowledged.  All the material in this course and on these pages is copyright © 2001 by Steve Cunningham unless another creator and/or copyright is specifically noted, as is the case on some files.