Graphics Standards
The nice thing about standards is that there are so many to choose from. (Andrew Tanenbaum)
Standards are normally promoted by organizations such as the International Standards Organization, however many of the standards used in computing are de facto standards, created and promoted by a particular company.
File Formats
There are very many graphics file formats out there. Wikipedia has a good summary of Encyclopedia of Image File Formats. Another useful site is Wotsit’s, which has links to all kinds of formats.
Image File Formats
An image is just an array of pixels so we can just store them in a file.
GIF
A GIF file uses 8 bits per pixel, compressed. It was the first file format supported by web browsers, so is very popular. Unfortunately it was patented.
PNG
Developed as replacement for GIF, PNG is patent-free and supports 8, 24 and 32 (RGB plus 8 bit transparency) bits per pixel. It uses a better compression scheme than GIF.
JPEG
GIF and PNG use lossless compression. JPEG compresses files much more by throwing some information away, that is the original image cannot be created exactly, but the difference is not noticable to humans. JPEG 2000 is designed to be the successor to JPEG.
Movies
MPEG
MPEG uses lossy compression similar to JPEG. It also compresses movies by only sending the differences between frames.
Animated GIF
This is just multiple GIFs stored in one file. It is popular because it was the first movie format supported by web browsers.
MNG
is to animated GIF what PNG is to GIF.
MPEG 4
This extends MPEG to multimedia content. It adds things such as 3D objects (like VRML) and capabilities such as letting the viewer change their point of view.
Object Formats
Instead of encoding the pixels coming out of the far end of the graphics pipeline you can encode the 3D (or 2D) models that go into the pipeline.
SVG
SVG (Scalable Vector Graphics) is an XML based description for 2D graphics.
PostScript
This is a page description language developed by Adobe originally intended for specifying the pixels to fill on laser printers. 2D Shapes are specified by Bezier curves. One interesting feature is the language is a simple programming language, thus allowing easy extensibility.
VRML
Intended to allow 3D environments to be put on the web, VRML describes 3d geometry, appearances and behaviours.
X3D
X3D is the next generation for VRML, combining it with the XML (the next generation replacement for HTML).
APIs
Application Programmer Interfaces are the means by which programmers access library functions.
OpenGL
OpenGL provides 2D and 3D graphics functions, including modelling, transformations, color, lighting, smooth shading, as well as advanced features like texture mapping, NURBS, fog, alpha blending and motion blur. It is available for Windows, MacOS and Unix systems and can be called from C, C++ or Java. Many 3D graphics cards provide OpenGL support.
Direct3d
This is Microsoft’s attempt to duplicate OpenGL in an API they control.
Java 3D
This is a higher-level API than Open-GL. Essentially you create and modify a scene graph, an object representing the entore scene to be rendered.
Open Inventor
This provides similar functionality to Java 3D, but is built around C++ instead of Java. VRML is based on Open Inventor’s file format.
OpenSG
OpenSG is a portable scene graph system to create realtime graphics programs.
OGRE
Open Graphics Rendering Engine: a open source 3D graphics engine that has been used in several games.