CS 496 — Computer
Graphics
San Diego State University
— Spring 2000
Dr. Steve Cunningham
cunningham@siggraph.org,
rsc@sdsc.edu
in collaboration with Dr.
Kris Stewart
Class BAM 412; Laboratory
BAM 120
An introduction to
computer graphics programming using OpenGL. 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 108.
Solid spatial thinking skills are also useful.
Course content:
we will cover as much of this material as we can, but will emphasize examples
of graphical programming for scientific studies and effective communication
through images.
-
the OpenGL system and
sample codes
-
simple geometric modeling
and GL/GLUT primitives
-
double buffering of images
-
description of course
projects and operations
-
color models and representation
-
transformations
-
managing transformation
stacks and composing transformations
-
heirarchical modeling
-
display lists
-
lights and shading models
-
alpha channel and transparency
-
effective communication
through images
-
application areas in the
sciences
-
examples of graphical
programming for scientific studies
-
event models and event-driven
programming
-
standard OpenGL callbacks
-
animations based on the
idle callback and time-based modeling
-
creation and evaluation
of user interfaces built on OpenGL events
-
texture mapping
-
antialiasing and fog effects
-
evaluators and spline-based
modeling
-
object selection and direct
interaction with images
There is no formal syllabus
for the course, but the ordering of topics above is probably a fairly good
approximation of the sequence in which we will cover materials. The
book “OpenGL Programming Guide,” second or third edition, Mason Woo et
al., Addison-Wesley, is the text for the course.
Instructor:Dr.
Cunningham is on leave in 1999-2000 from California State University
Stanislaus to develop curriculum and projects for the introductory computer
graphics course. This project is also supported by the National Science
Foundation. This course at San Diego State is an early implementation
of some of these ideas and your feedback is strongly desired. Dr.
Cunningham regularly attends various graphics events and has served in
several positions with ACM SIGGRAPH, and <commercial> you are all encouraged
to join ACM and SIGGRAPH
as student members to see what is happening in the larger world of computer
science and computer graphics. </commercial>
Because Dr. Cunningham
is not a regular SDSU faculty member, he does not maintain an office or
have an on-campus phone number. Office hours are approximately
6:00 to 7:00 pm — right before class — in the BAM 120 lab. Contact
by email is encouraged and a listserv has been set up (cs496@lists.sdsu.edu)
to allow everyone in class to communicate with everyone else for questions
or comments.
Projects and examples:
Projects and examples will be posted regularly in the space below.
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.
Background:
I have made available a few papers that explain some of the approaches
I want to take with this course. Students don’t often see the background
concepts for the courses you take because you’re much more interested in
the content, but I want to share this with the class so you can participate
in helping me to develop these concepts.
-
A
paper that will be published in the journal Computers and Graphicsin
the spring of 2000
-
A
paper that was presented at the SIGCSE 2000 conference in March 2000
-
A
paper that will be presented at the SIGGRAPH 2000 Educators Program
in July 2000
Other work is being developed
as well to communicate the concepts of this course to the computer science
community, specifically to the small college community.
Resources and
examples:
-
Getting started
-
Visual Communication
module
-
Graphics modeling module
-
Description of modeling
-
Examples of modeling
-
Viewing
-
Color
-
Lighting and shading
-
Modeling with transformations
-
Science projects
-
Event-driven programming
-
Description
of event handling
-
Description
of the MUI facility
-
Brief
MUI User Guide (Steve Baker)
-
Fairly extensive set of
MUI materials, including the MUI library and headers for several functionalities
(thanks to the EdCenter
group — linux version should be coming soon!)
-
MUI for linux: libmui.a
-
put this file in your
/usr/lib directory, and use the -lmui option on the compile line, along
with -lGL -lGLU -lglut... etc... on your home linux box. This
will be added to the SDSU ACM lab and its availability will be announced.
-
Examples of event handling
-
Some other concepts:
window/viewport, clipping, HSV color space
-
Texture mapping
-
Animation
-
Object selection
-
High-performance graphics
techniques and games graphics
-
Evaluators and spline
surfaces
-
Hardcopy
Comments to the
instructor:
-
You may send anonymous
comments to the instructor, and are encouraged to do so whenever you
wish.
Projects:
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. Grades will be based upon course projects (50%) and
an examination (50%). Projects will be assigned as the semester progresses,
and the examination will be given at the end of the semester at a time
to be announced later. (Please note that this is not a "final examination";
you will doubtless have many others in your university careers, so it makes
no sense to call this one "final." It's simply the examination in
this class.)
Acknowledgements
and copyright: These materials 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 © 2000 by
Steve Cunningham unless another creator and/or copyright is specifically
noted, as is the case on some files.