Links to Online Resources
There are many online resources which provide useful information about computer graphics. This page provides a collection of links of specific relevance CS 318. It is naturally incomplete. For an excellent general collection, we recommend the Real-Time Rendering site, the online companion page for the book Real-Time Rendering by Tomas Möller and Eric Haines.
This class will make extensive use of the OpenGL graphics interface. It is the most widely supported standard for real-time, hardware-accelerated rendering. For those systems without an official OpenGL interface, the Mesa 3-D graphics library is freely available.
A lot of good information, that goes beyond the contents of the Programming Guide, can be found in the SIGGRAPH 99 Course Notes on Advanced Graphics Programming Techniques Using OpenGL.
Mark Kilgard has also compiled a list of "way cool, way fast OpenGL techniques".
You might also try looking at the tutorial programs written by Nate Robins.
To use OpenGL, you must create windows on the screen that OpenGL can draw into. In this course, we will be using the FLTK toolkit, which works under both Windows and X. The GLUT toolkit is also a popular choice, but it doesn't provide much in the way of interface elements (e.g., buttons, sliders, menus).
Graphics systems generally need to both read and write raster image data. There are numerous image file formats out there (see Wotsit's list for details). We will be using the formats listed in this section.
Our primary image format will be the Tag Image File Format (TIFF), which has been around for a while. We will be using the libtiff library to provide low-level support for reading and writing TIFF files.
The Portable Network Graphics (PNG) format is more recent. It's arguably more featureful, and there is also a libpng library available. PNG files often tend to be smaller than TIFF files, but are not as widely supported.
The NetPBM software collection supports three related formats: PBM (bitmap), PGM (grayscale), and PPM (RGB color). Due to their particularly simple file formats, they're very easy to read and write. However, they're generally not supported by software packages on the PC and Mac platforms.
Unlike the previous formats, JPEG is a lossy compression scheme. It was designed for encoding photos; it tends to degrade things like text. The Independent JPEG Group provides a set of encoding/decoding tools as well as a library for manipulating JPEG files.
Charles Poynton has written some nice articles that contain a lot of useful information on display gamma and color spaces.
Craig Reynolds as compiled a nice survey of online resources for non-photorealistic rendering.
Last modified: Wed Aug 22 12:25:44 CDT 2001