Specifications

922
Chapter 15 Video Hardware
Application Programming Interfaces
Application programming interfaces (APIs) provide hardware and software vendors a means to create
drivers and programs that can work quickly and reliably across a wide variety of platforms. When APIs
exist, drivers can be written to interface with the API rather than directly with the operating system
and its underlying hardware.
Currently, the leading game APIs include SGI’s OpenGL and Microsoft’s Direct3D (part of DirectX).
OpenGL and Direct3D are available for virtually all leading graphics cards. A third popular game API
was Glide, an enhanced version of OpenGL that is restricted to graphics cards that use 3Dfx chipsets,
which are no longer on the market.
The latest version of OpenGL is version 1.5, released on July 29, 2003. It adds programmable shading
support through the OpenGL Shading Language specification and other enhancements. To learn more
about OpenGL, see the OpenGL Web site at
www.opengl.org. Although the video card maker must pro-
vide OpenGL support through driver updates, Microsoft provides support for Direct3D as part of a
much larger API called DirectX.
The latest version of DirectX is DirectX 9.x, which enhances 3D video support, enhances DirectPlay (used
for Internet gaming), and provides other advanced gaming features. For more information about DirectX or
to download the latest version, see Microsoft’s DirectX Web site at
www.microsoft.com/windows/directx.
Note
DirectX 9.x is for Windows 98 and later versions (98SE, Me, 2000, and XP) only. However, Microsoft still provides
DirectX 8.0a for Windows 95 users.
Although DirectX 8.0, 8.1, and 9.0 all provide support for higher-order surfaces (converting 3D sur-
faces into curves), vertex shaders, and pixel shaders, significant differences exist between DirectX
8.0/8.1 and 9.0 in how these operations are performed.
The difference between DirectX 8.0 (used by NVIDIA) and DirectX 8.1 (used by ATI and Matrox)
involves the pixel shader portion of the 3D rendering engine. DirectX 8.1’s pixel shader can handle
more texture maps (6 versus 4) and more texture instructions (8 versus 4) than DirectX 8.0. DirectX
8.1 also handles integer data with 48-bit precision, versus DirectX 9.0’s 32-bit precision. However, both
pale in comparison to DirectX 9.0’s pixel shader, which handles up to 16 texture maps, up to 32 tex-
ture instructions, and up to 64 color instructions and uses floating-point data at 128-bit precision.
To create higher-order surfaces, DirectX 9 supports continuous tessellation (the process of converting a
surface into small triangles using floating-point math for greater precision) and displacement mapping
in addition to the n-patches method used by DirectX 8.0 and 8.1.
DirectX 9.0’s vertex shader is capable of handling much more complex commands than the DirectX
8.x shader: 1,024 instructions versus 128 and up to 256 constants versus 96. DirectX 9.0 also supports
flow control.
DirectX 9.0c (supported by the NVIDIA GeForce FX 6800 series) includes Vertex Shader and Pixel
Shader 3.0. Both support up to 65,535 instructions and 32-bit floating-point precision.
DirectX 9.x support is becoming commonplace in major new game releases, including leading titles such
as Half-Life 2, Doom 3, Far Cry, Painkiller, and others. As noted previously, the next major revision of
Microsoft Windows (code-named Longhorn) will offer a DirectX 9.0–compliant 3D GUI as an option.
3D Chipsets
Virtually every mainstream video adapter in current production features a 3D acceleration–compatible
chipset. With several generations of 3D adapters on the market from the major vendors, keeping track
of the latest products can be difficult. Table 15.20 lists the major 3D chipset manufacturers, the various
chipsets they make, and the major features of each chipset.
16 1738 ch15 7/30/04 10:31 AM Page 922