Since the late 1990s, 3D accelerationonce limited to exotic add-on cards designed for hardcore game playershas become commonplace in the PC world. Although mainstream business users are not likely to encounter 3D imaging until Windows Vista (previously code-named Longhorn) is released in 2006, full-motion 3D graphics are used in sports, first-person shooters, team combat, driving, and many other types of PC gaming. Because even low-cost integrated chipsets offer some 3D support and 3D video cards are now in their ninth generation of development, virtually any user of a recent-model computer has the ability to enjoy 3D lighting, perspective, texture, and shading effects in her favorite games. The latest 3D sports games provide lighting and camera angles so realistic that a casual observer could almost mistake the computer-generated game for an actual broadcast, and the latest 3D accelerator chips enable fast PCs to compete with high-performance dedicated game machines, such as Sony's PlayStation 2, Nintendo's GameCube, and Microsoft's Xbox 360, for the mind and wallet of the hard-core game player. Note At a minimum, Windows Vista requires graphics hardware that supports DirectX 7 3D graphics; however, for maximum functionality of its 3D AeroGlass GUI, graphics hardware that supports DirectX 9 or greater is required. How 3D Accelerators WorkTo construct an animated 3D sequence, a computer can mathematically animate the sequences between keyframes. A keyframe identifies specific points. A bouncing ball, for example, can have three keyframes: up, down, and up. Using these frames as a reference point, the computer can create all the interim images between the top and bottom. This creates the effect of a smoothly bouncing ball. After it has created the basic sequence, the system can then refine the appearance of the images by filling them in with color. The most primitive and least effective fill method is called flat shading, in which a shape is simply filled with a solid color. Gouraud shading, a slightly more effective technique, involves the assignment of colors to specific points on a shape. The points are then joined using a smooth gradient between the colors. A more processor-intensive, and much more effective, type of fill is called texture mapping. The 3D application includes patternsor texturesin the form of small bitmaps that it tiles onto the shapes in the image, just as you can tile a small bitmap to form the wallpaper for your Windows desktop. The primary difference is that the 3D application can modify the appearance of each tile by applying perspective and shading to achieve 3D effects. When lighting effects that simulate fog, glare, directional shadows, and others are added, the 3D animation comes very close indeed to matching reality. Until the late 1990s, 3D applications had to rely on support from software routines to convert these abstractions into live images. This placed a heavy burden on the system processor in the PC, which has a significant impact on the performance not only of the visual display, but also of any other applications the computer might be running. Starting in the period from 1996 to 1997, chipsets on most video adapters began to take on many of the tasks involved in rendering 3D images, greatly lessening the load on the system processor and boosting overall system performance. There have been roughly nine generations of 3D graphics hardware on PCs, as detailed in Table 13.21.
With virtually every recent graphics card on the market featuring DirectX 8.x or greater capabilities, you don't need to spend a fortune to achieve a reasonable level of 3D graphics. Many cards in the $75$200 range use lower-performance variants of current high-end GPUs, or they might use the previous year's leading GPU. These cards typically provide more-than-adequate performance for 2D business applications. Most current 3D accelerators also support dual-display and TV-out capabilities, enabling you to work and play at the same time. However, keep in mind that the more you spend on a 3D accelerator card, the greater the onboard memory and faster the accelerator chip you can enjoy. Current high-end video cards featuring NVIDIA or ATI's top graphics chips, 256MB512MB of video memory, and PCI Express x16 interfaces sell for $300$500 each. These cards are aimed squarely at hardcore gamers for whom money is no object, and some support dual-card technologies such as NVIDIA's SLI or ATI's CrossFire, which split rendering chores across the GPUs in both video cards for faster game display than with a single card. Mid-range cards costing $200$300 are often based on GPUs that use designs similar to the high-end products but might have slower memory and core clock speeds or a smaller number of rendering pipelines. These cards provide a good middle ground for users who play games fairly often but can't cost-justify high-end cards. Most of these cards are available in either PCI Express x16 or the older AGP 8x form factor. Before purchasing a 3D accelerator adapter, you should familiarize yourself with some of the terms and concepts involved in the 3D image generation process. The basic function of 3D software is to convert image abstractions into the fully realized images that are then displayed on the monitor. The image abstractions typically consist of the following elements:
Using these elements, the abstract image descriptions must then be rendered, meaning they are converted to visible form. Rendering depends on two standardized functions that convert the abstractions into the completed image that is displayed onscreen. The standard functions performed in rendering are
A modern video adapter that includes a chipset capable of 3D video acceleration has special built-in hardware that can perform the rasterization process much more quickly than if it were done by software (using the system processor) alone. Most chipsets with 3D acceleration perform the following rasterization functions right on the adapter:
Typical 3D TechniquesTypical 3D techniques include
Advanced 3D Filtering and RenderingTo improve the quality of texture maps, several filtering techniques have been developed, including MIP mapping, bilinear filtering, trilinear filtering, and anisotropic filtering. These techniques and several other advanced techniques found in recent 3D GPUs are explained here:
Note Bilinear and trilinear filtering work well for surfaces viewed straight-on but might not work so well for oblique angles (such as a wall receding into the distance).
Table 13.22 shows when various 3D rendering features were added to DirectX versions from 6.0 to 9.0c.
Single- Versus Multiple-Pass RenderingVarious video card makers handle application of these advanced rendering techniques differently. The current trend is toward applying the filters and basic rendering in a single pass rather than in multiple passes. Video cards with single-pass rendering and filtering typically provide higher frame-rate performance in 3D-animated applications and avoid the problems of visible artifacts caused by errors in multiple floating-point calculations during the rendering process. Hardware Acceleration Versus Software AccelerationCompared to software-only rendering, hardware-accelerated rendering provides faster animation. Although most software rendering would create more accurate and better-looking images, software rendering is too slow. Using special drivers, these 3D adapters can take over the intensive calculations needed to render a 3D image that software running on the system processor formerly performed. This is particularly useful if you are creating your own 3D images and animation, but it is also a great enhancement to the many modern games that rely extensively on 3D effects. Note that motherboard-integrated video solutions, such as those listed in Tables 13.9 and 13.10, typically have significantly lower 3D performance than even low-end GPUs because they use the CPU for more of the 3D rendering than 3D video adapter chipsets do. To achieve greater performance, many of the latest 3D accelerators run their accelerator chips at very high speeds, and some even allow overclocking of the default RAMDAC frequencies. Just as CPUs at high speeds produce a lot of heat, so do high-speed video accelerators. Both the chipset and the memory are heat sources, so most mid-range and high-end 3D accelerator cards feature a fan to cool the chipset. Also, most current high-end 3D accelerators use finned passive heatsinks to cool the memory chips and make overclocking the video card easier (refer to Figure 13.14). Software OptimizationIt's important to realize that the presence of an advanced 3D-rendering feature on any given video card is meaningless unless game and application software designers optimize their software to take advantage of the feature. Although various 3D standards exist (OpenGL and DirectX), video card makers provide drivers that make their games play with the leading standards. Because some cards do play better with certain games, you should read the reviews in publications such as Maximum PC to see how your favorite graphics card performs with them. Typically, it can take several months or longer after a new version of DirectX or OpenGL is introduced before 3D games take full advantage of the 3D rendering features provided by the new API. Some video cards allow you to perform additional optimization by adjusting settings for OpenGL, Direct 3D, RAMDAC, and bus clock speeds, as well as other options. Note that the bare-bones 3D graphics card drivers provided as part of Microsoft Windows usually don't provide these dialog boxes. Be sure to use the drivers provided with the graphics card or download updated versions from the graphics card vendor's website. Although you can sometimes use generic drivers provided by the GPU vendor, you should use drivers that have been specifically developed for your card to ensure that your card's particular features are fully supported. Note If you want to enjoy the features of your newest 3D card immediately, be sure to purchase the individual retail-packaged version of the card from a hardware vendor. These packages typically come with a sampling of games (full and demo versions) designed or compiled to take advantage of the card with which they're sold. The lower-cost OEM or "white box" versions of video cards are sold without bundled software, come only with driver software, and might differ in other ways from the retail advertised product. Some even use modified drivers, use slower memory or RAMDAC components, or lack special TV-out or other features. Some 3D card makers use different names for their OEM versions to minimize confusion, but others don't. Also, some card makers sell their cards in bulk packs, which are intended for upgrading a large organization with its own support staff. These cards might lack individual documentation or driver CDs and also might lack some of the advanced hardware features found on individual retail-pack video cards. Application Programming InterfacesApplication 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. At one time, 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. OpenGLThe latest version of OpenGL is version 2.0, released on September 7, 2004. The OpenGL Shading Language, an optional feature of the previous version (OpenGL 1.5), is now a core feature of OpenGL 2.0. OpenGL 2.0 also supports programmable vertex and fragment shaders, multiple render targets, improved textures, and other enhancements. Although OpenGL is a popular gaming API, it is also widely used in 3D rendering for specialized business applications, including mapping, life sciences, and other fields. To learn more about OpenGL, see the OpenGL website at www.opengl.org. OpenGL support is provided by the video card or chipset vendor through driver updates. Microsoft DirectXDirect3D is part of Microsoft's comprehensive multimedia API, DirectX. Although DirectX 8.0, 8.1, and 9.0 all provide support for higher-order surfaces (converting 3D surfaces 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 texture 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 many 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. The latest version of DirectX is version 9.0c. DirectX 9.0c supports improved pixel and vertex shading (65,535 instructions with 32-bit floating-point precision), dynamic branching, and vertex texture lookups through its support for Shader Model 3.0. (DirectX 9.0 supports only Shader Model 2.0.) Currently, NVIDIA 6xxx and 7xxx GPUs and ATI's X1K series support DirectX 9.0c (and thus Shader Model 3.0), whereas ATI's first-generation PCI Express cards (X850X300) use Shader Model 2.0. Note DirectX provides backward compatibility to support games and other programs written for earlier DirectX versions. Thus, installing the latest version of DirectX enables you to play games that require it while maintaining compatibility with older games. For more information about DirectX or to download the latest version, see Microsoft's DirectX website 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. Dual-GPU Scene RenderingIn Table 13.21, I placed the development of dual PCI Express graphics card solutions as the ninth generation of 3D acceleration. The ability to connect two cards together to render a single display more quickly isn't exactly new: The long-defunct 3dfx Voodoo 2 offered an option called scan-line interfacing (SLI), which pairs two Voodoo 2 cards together on the PCI bus with each card writing half the screen in alternating lines. With 3dfx's version of SLI, card number one wrote the odd-numbered screen lines (one, three, five, and so on), while card number two wrote the even-numbered screen lines (two, four, six, and so on). While popular and effective, use of SLI with Voodoo 2 was an expensive proposition that only a handful of deep-pocketed gamers took advantage of. A few companies also experimented with using multiple GPUs on a single card to gain a similar performance advantage, but these cards never became popular. However, the idea of doubling graphics performance via multiple video cards has proven too good to abandon entirely, even after 3dfx went out of business. NVIDIA SLIWhen NVIDIA bought what was left of 3dfx, it inherited the SLI trademark and, in mid-2004, reintroduced the concept of using two cards to render a screen under the same acronym. However, NVIDIA's version of SLI has a different meaning and much more intelligence behind it. NVIDIA uses the term SLI to refer to scalable link interface. The scaling refers to load-balancing, which adjusts how much of the work each card performs to render a particular scene, depending on how complex the scene is. To enable SLI, the following components are needed:
Note Originally, you needed to use two identical cards for NVIDIA SLI. With the introduction of NVIDIA ForceWare v81.85 or higher driver versions, this is no longer necessary. Just as with the ATI CrossFire multi-GPU solution, the cards need to be from the same GPU family (two 7800, two 6800, or two 6600 cards), but they don't need to be from the same manufacturer. You can obtain updated drivers from your video card maker or from the NVIDIA website (www.nvidia.com). For best results, SLI should be used with games that have been optimized for SLI. More than 60 games feature in-box SLI support, but you can download customized game profiles from NVIDIA's official SLI website: www.slizone.com. You can enable or disable SLI rendering and load balancing through the NVIDIA configuration software installed during the cards' installation process. Figure 13.16 illustrates a typical SLI hardware configuration. Note the MIO device connecting the cards to each other. Figure 13.16. How NVIDIA SLI looks in a typical installation.
ATI CrossFireATI's CrossFire multi-GPU technology uses three methods to speed up display performance: alternate frame rendering; supertiling, which divides the scene into alternating sections and uses each card to render parts of the scene; and load-balancing scissor operation (similar to SLI's load-balancing). The ATI Catalyst driver uses alternate frame rendering for best performance, but automatically switches to one of the other modes for games that don't work with alternate frame rendering. To achieve better image quality than with a single card, CrossFire offers various SuperAA (antialiasing) modes, which blend the results of antialiasing by each card. CrossFire also improves anisotropic filtering by blending the filtering performed by each card. To use CrossFire, you need the following components:
For CrossFire support for the X800, X850, and X1800 series, ATI has developed special CrossFire Edition cards that contain the composting engine (an Xilinx XC3S400 chip) and use a proprietary DMS-59 port for interconnecting the cards. One of these cards can be paired with a standard Radeon card from the same series. For example, you can pair an X800 CrossFire Edition with an existing X800XL. To connect these cards, a special external patch cable is used to connect the cards via the CrossFire Edition's DMS port and the DVI port on the standard card. The slower X1300 and X1600 series no longer use a special CrossFire Edition card as a master. You can pair any two X1300 or any two X1600 cards together on a CrossFire motherboard and the PCI Express bus is used to transfer information between the cards. The X1800 solution supports higher refresh rates at 1600x1200 than the X800 or X850. CrossFire can be disabled to permit multimonitor operation. Figure 13.17 illustrates how the X800/X850/X1800 cards implement CrossFire. Figure 13.17. How data flows in a typical ATI CrossFire implementation using X800, X850, or X1800 cards.For more information about CrossFire, see the ATI website at www.ati.com. 3D ChipsetsVirtually every mainstream video adapter in current production features a 3D accelerationcompatible chipset. With several generations of 3D adapters on the market from the major vendors, keeping track of the latest products can be difficult. Table 13.23 lists the major 3D chipset manufacturers, the various chipsets they make, and the major features of each chipset.
Professional graphics workstation cards and chipsets from vendors such as 3Dlabs (www.3dlabs.com), ATI, and NVIDIA are not listed in Table 13.23 because these cards are not found in standard desktop computers. See the vendors' websites for details about these products. Note See Chapter 15 in both Upgrading and Repairing PCs, 12th Edition and 13th Edition on this book's disc for more information about older chipsets from current manufacturers and for chipsets from manufacturers who no longer produce 3D graphics hardware. Note Table 13.23 is designed to be a reference to recent and current GPUs (and graphics cards) from current vendors. Only GPUs that meet fourth-generation (DirectX 7) or newer standards are included. Refer to Table 13.21 for the criteria I use to describe each 3D generation. Because most graphics card vendors now use the GPU name as part of the product name, Table 13.23 does not include product examples. See Upgrading and Repairing PCs, 15th Anniversary Edition, available in electronic form on the disc packaged with this book, for a table matching older graphics card GPUs and product names. Be sure to use this information in conjunction with application-specific and game-specific tests to help you choose the best card/chipset solution for your needs. Consult the chipset vendors' websites for the latest information about third-party video card sources using a specific chipset. Most chipsets in Table 13.23 feature some level of dual-display support, typically offering VGA, DVI-I, and TV-out. See the details for a particular video card to determine which features it implements as well as its memory size and other particulars. |