Graphics Reference
In-Depth Information
the IBM PC-compatible computers. The same was true of the corresponding inter-
face found in the Microsoft compilers. A number of much more sophisticated stan-
dards were developed over the years such as
Core (The 3d Core Graphics System): specified by ACM SIGGRAPH committees
in 1977 and 1979 ([GSPC77] and [GSPC79])
GKS (Graphics Kernel System): specified by various national and international
committees in the 1980's with a 3d version becoming a standard in 1988
([ANSI85], [ISO 88], [EnKP84], [BDDH95])
PHIGS (Programmer's Hierarchical Interactive Graphics System): a more complex
standard than GKS, which was specified by ANSI (the American National
Standards Institute) in 1988 ([ANSI88] and [VanD88])
See [Cars98] for a brief history. Two more recent standards are
OpenGL: see [WNDS99], [KemF97], [WriS00]
DirectX: see [Glid97], [BarD98], [Timm96]
The rise in the popularity of the Microsoft Windows operating system meant that
its application programming interface (API) became a driving force for standards for
that system. At first there was only the basic Windows graphics device interface (GDI).
This made writing graphics programs hardware independent, but at the expense of
speed. The result was that developers, especially those involved in writing games,
stayed with DOS, which allowed programmer to go directly to the hardware and
squeeze out the last ounce of speed essential for games. To attract developers to
Windows, Microsoft next came out with WinG, which provided a few low-level bitmap
functions that did speed up basic graphics operations substantially, but it was not
enough. Microsoft's graphics standard successors to WinG were DirectDraw and
Direct3D, which were part of the DirectX API that was intended for multimedia appli-
cations. DirectDraw provided two-dimensional graphics primitives. Direct3D was
the three-dimensional counterpart. Although these allowed for high-performance
graphics under Windows, DirectDraw and Direct3D were low level. A competing
and higher-level graphics API is OpenGL, a graphics standard originally developed
by Silicon Graphics, Inc., for its graphics workstations. Good implementations of
OpenGL for Windows are built on DirectX drivers. Although native DirectX code is
currently faster, the advantage of OpenGL is that it is available on many other com-
puter and operating system platforms, a plus for Internet applications. The companion
programs for this topic, GM and SPACE, use OpenGL.
Having just praised standards, we also need to point out what has traditionally
been their downside. If one uses a standard, then one must be willing to put up with
extra overhead in the code. Furthermore, because standards are device independent,
they, by definition, usually do not take advantage of any special features that a par-
ticular piece of hardware may have. What this means is that programs that use them
are sometimes much slower on a particular machine than a program that accesses its
hardware features directly. Software developers have often been forced to choose
between device independence and speed in those cases where speed is critical. For-
tunately, with DirectX and OpenGL the situation has much improved and this is no
longer a serious problem.
Search WWH ::




Custom Search