A.General and Miscellaneous D. Software Packages
B. Algorithms E. File Formats and Conversions
C. Mathematical Techniques F. Journals, Magazines, Books, Resources

Also see: efg's Color, Simulation & Modeling, and  Image Processing Reference Library Pages and
Graphics and Image Processing Project Pages

A. General and Miscellaneous

Computer Graphics

Graphics Resources:

Game Programming

Amit's Game Programming Information

Graphics Archive Disks (1990-1998), Images (1992-1998), Programs
Symbols contains more than 2,500 Western signs, arranged into 54 groups according to their graphic characteristics.
User Interface User Interface Design Tips by well-known expert Bruce Tognazzini ("TOG")

User Interface Engineering

Web Usability

Digital Human Factors & Ergonomics Resources

World Wide Web Consortium Notes Precision Graphics Markup Language

Vector Markup Language

B. Algorithms


TechnoMagi:  Algorithm Links

2D Transformations [Foley96, pp. 201-213]
3D Transformation [Foley96, pp. 213-216]
Alpha Blending

MMX Enhanced Alpha Blending 

Animation Anmation Resources

[Foley96, Chapter 21, pp. 1057-1081]

Animation tools & tips


Unweighted Area Sampling
Weighted Area Sampling
Gupta-Sproull Antialiased Lines
[Foley96, Section 3.17, pp. 132-142, 617-647]

Antialiasing Lines
[Foley96, Section 19.3.1, pp. 967-969]

Antialiasing Circles
[Foley96, Section 19.3.2, pp. 969-971]

Antialiasing General Curves
[Foley96, Section 19.3.4, pp. 974-975]

Antialiasing Rectangles, Polygons, and Line Ends
[Foley96, p. 975]

Wu Anti-aliased Lines

Antialiasing and Raytracing 

BitBlt Making CopyPixel Fast
[Foley96, Section 19.6, pp. 986-992]
Bresenham's algorithm G. Hoffmann's "Drawing Lines" 

Bresenham's Line and Circle Algorithms 

Bresenham's Line Algorithm from Byte, March 1988, pp. 249-253.

Camera Transform

World and Camera Coordinates
Practical Handbook on Image Processing for Scientific Applications 
p. 126


A General Polygon Clipping Library 

Cohen-Sutherland Line-Clipping Algorithm
[Foley96, Section 3.12.3, pp. 113-117]

Cyrus and Beck Parameteric Line-Clipping Algorithm
[Foley96, Section 3.12.4, pp. 117-124]

Sutherland-Hodgman Polygon-Clipping Algorithm
[Foley96, Section 3.14.1, pp. 124-127]

Generic Polygon Clipper Library

[Foley96, pp. 924-946] FAQ or
Contours, Contour Maps

Implementation of an Improved Contour Plotting Algorithm 

MUMIL - a cursor based contouring routine 

Contouring.  A guide to the analysis and display of spatial data, Pergamon Press, 1992.   Amazon Link

Contouring Algorithm, Byte Magazine, July 1987 

Contour Maps

Dithering See efg's Image Processing Reference Library Algorithms page
Filling Rectangles, Polygons
[Foley96, Sections 3.5-3.6, pp. 91-98, 979-986]
Flare/Glare Physically-based glare effects for digital images
Graphics Gems Repository On-line repository for the code from the Graphics Gems series by Academic Press.  
Also see Master Table of Contents at
Halftone Approximation [Foley96, pp. 568-573]
Homogeneous Coordinates [Foley96, Section 5.2, pp. 204-210]

Practical Handbook on Image Processing for Scientific Applications  p. 127

Landscapes Virtual Terrain Project

Generating Random Fractal Terrain

Terragen is a scenery generator being developed for Windows 95, 98 and NT. At this stage of its development, Terragen is free for personal non-commercial use.    Terragen is already capable of photorealistic results for professional landscape visualisation, special effects, art and recreation.

How to Render Landscapes

Lens Flares

Lens Flare Tutorial

Marching Cubes Algorithm
Perlin Noise

"Noise and Turbulence" by Ken Perlin

"Making Noise" by Ken Perlin

Point in Polygon

Simple Point in Polygon (Convex) Tests

PNPOLY - Point Inclusion in Polygon Test 

Nochmal Punkt in Polygon (German:  Again, Point in Polygon) 

Point in Triangle in Dave Eberly's UseNet Post:  Let the points be (x0,y0,z0), (x1,y1,z1), (x2,y2,z2).  Given (x,y), solve for s and t in (x,y) = (x0,y0)+s*(x1-x0,y1-y0)+t*(x2-x0,y2-y0).  The point is inside the triangle if s >= 0, t >= 0, and s+t <= 1.  Then choose z = (1-s-t)*z0+s*z1+t*z2.

Point left/right of line See "Orientation" at
Projection [Foley96, Section 6.1,  pp. 230-237]
Radiosity Radiosity Bibliography (Global Illumination Bibliographies) 

Radiosity Page 

Ray Tracing

Ray Tracing News Guide

Ray Tracing Bibliography

Set of basic test images for ray tracing algorithms


Illumination and Shading
[Foley96, Chapter 16, pp. 721-814]

Lights! Camera! Action!
A guide to The Fundamental Maths And Principles Of Rendering

Light Sourced Lambert Shading

Rendering Algorithms


Volume Rendering

Rotation 2D [Foley96, pp. 203, 206]
3D [Foley96, pp. 213-216] FAQ 1.01, 5.01

Rotation using the three Eulerian angles
Practical Handbook on Image Processing for Scientific Applicationsp. 126, 128

efg's Lab Report about Math and Delphi Example of Image Rotation

Scaling 2D [Foley96, pp. 202, 205-206]
3D [Foley96, pp. 213-216]
Scan Conversion Circles
[Foley96, Section 3.3, pp. 81-87]

[Foley96, Section 3.4, pp. 88-90]

Bresenham's algorithm

Basic Incremental Algorithm, Midpoint Line Algorithm (Bresenham)
[Foley96, Section 3.2, pp. 73-80]

Star Fields
Sub-Pixel Accuracy
Terrain See Landscapes

Texture Mapping Mathematics

Texture Mapping and Image Warping Bibliography

Texture Mapping as a Fundamental Drawing Primitive

Texture Land:  Abnormal Textures Index

Spherical Texture Mapping

Texture and Color

Translation 2D [Foley96, pp. 201-202, 205]
3D [Foley96, pp. 213-216]
Viewing Transformation

Specifying an arbitrary 3D View
[Foley96, pp. 237-242]

3D Transformations and Perspective
Newman and Sproull, Principles of Interactive Computer Graphics, McGraw-Hill, 1973, Chapter 22, pp. 333-354


Visible-Surface Determination
[Foley96, Chapter 15, pp. 649-720]

Hans-Bernhard Broeker's pseudocode from UseNet Post: (15 Sep 99) to
  for each edge:
     for each polygon:
           if edge is (partly) obscured by polygon:
           remove the obscured part(s) of the edge
             draw remaining part(s) of the edge FAQ, Section 2.05
Hidden Surface Test

Hidden Surface Removal

Window to Viewport Transformation [Foley96, pp. 210-212]

C. Mathematical Techniques

Bezier Curves Postscript Programming -- Bezier Techniques 

Curved Surfaces Using Bézier Patches

[Foley96, Section 11.2.2, pp. 488-491, 521-525]

Pierre Bézier died in France on the 25th of November 1999 (R. Forrest's UseNet Post)

Section 1, 2D Computations, Points, Segments, Circles, etc.
Section 2, 2D Polygon Computations
Section 4, Curve Computations
Section 5, 3D Computations
Section 6, Geometric Structures
Geometry See efg's Algorithms page


[Foley96, pp. 253-258]

Mathematics Mathematics for Computer Graphics
[Foley96, Appendix, pp.1083-1112]
Numbers Postscript Programming -- Drawing Numbers 
NURBS Non-Uniform Rational B-splines
  • Non-uniform refers to the type of knot vector supported. A non-uniform knot vector requires that the knot vector is non-decreasing.
  • Rational refers to the type or polynomial functions that define the blending.  While some areas benefit from rational polynomials, many applications work best with non-rational curves (scuh as refitting and smoothing).
  • B-spline refers to "basis" spline used to blend the control points.  Basis splines represent a generalization of Bezier splines, which support conics and are considered to be very stable.

Also see Splines

Solid Modeling [Foley96, Chapter 12,  pp. 533-562]

"Implementing Uniform Trigonometric Spline Curves"
by Robert F. Kauffmann in  Algorithm Alley of Dr. Dobb's Journal
May 1997.  The article demonstrates different trigonometric and cubic splines.

Also see NURBS

Surfaces Representing Curves and Surfaces
[Foley96, Chapter 11, pp. 471-532]

Paper and Plotter: A 3D Surface (excellent article)

D. Software Packages

gnuplot API in ANSI C 
Mesa 3D Graphics Library Mesa is a 3D graphics library with an API which is very similar to that of OpenGL.

E. File Formats and Conversions

Also see Delphi File Formats and Conversions page

AVI Personal AVI Editor from FlickerFree Multimedia Products
Compression comp.compression Newsgroup FAQ
DIB Windows Device-Independent Bitmap

Using Device-Independent Bitmaps and Palettes

Sample: 16 and 32 Bits-Per-Pel Bitmap Formats

"More Fun with MFC: DIBs, Palettes, Subclassing, and a Gamut of Reusable Goodies", Parts I, II, II, in January, March, June 1997 Microsoft Systems Journal by Paul DiLascia. MSJJAN97, MSJMAR97 and MSJJUN97 [Microsoft failed to maintain their links.]

DICOM Digital Imaging and Communications in Medicine
EPS Encapsulated PostScript is a page description language used by imagesetters and some laser printers.
See Postscript below.
File Formats (great file format resource)

My File Formats 

The Graphics File Formats Page

Graphics and Sound File Formats

GIF Compuserve's Graphics Interchange Format using Sperry-Univac's patented LZW compression is limited to 256-colors.  Unisys failed to maintain their link about their LZW Patent and Software Information.

Optimized GIFs from Windows DIBs, December 1998, C/C++ Users Journal

GIF Movie Gear (for GIF animation)
GIF Movie Gear Lab:

Library of GIFs
Icons and Images for Use in HTML Documents

ICO IconEdit by Michael J. Mefford in PC Magazine
JPEG JPEG Compression:


Independent JPEG Group, 

Implementing Fast DCTs
Dr. Dobb's Journal, March 1999, pp. 115-119

Multiple Conversions

PaintLib. Supports PNG, TGA, TIFF, JPEG/JFIF, BMP, Mac Pict, as well as EPS previews. C++ class.

PGM Used with the AT&T's Laboratories Cambridge Database of Faces (400 images)

See efg's Interactive PGMP5 "viewer" to display PGM files (P5 format) or the command-line utility ConvertFaces to convert PGM files of the Olivetti and Oracle Research Laboratory's Database of Faces (400 images) to BMP or JPG.


PNG Specification   (alternate link to Specification)

Postscript Ghostscript is a fully functional PostScript language interpreter (currently supporting Language Level 2).  Ghostscript has evolved into a very general graphics engine with several interpreter front ends (PostScript language, Adobe PDF, Hewlett-Packard PCL 5 and PCL XL) and many graphics file formats and device drivers on the back end (TIFF, JPEG, EPS, etc).

Postscript Programming 

SVF Simple Vector Format
TIFF Tag Image File Format (TIFF), pp. 299-302
Digital Image Processing:  Principles and Applications

Reading the Tag Image File Format, The C Users Journal, March 1991, pp. 92-100. 


yvu.gif (989 bytes)  efg's YUV Lab Report

F. Journals, Magazines, Books, Resources

Bibliographies on Computer Graphics and Vision
Computer Graphics World
Journal of Graphics, GPU & Game Tools 
FAQ from

Updated 6 Nov 2011
Since 1 Nov 1998