Upgrading and Repairing PCs Tip #12: How 3D Accelerators Work
Find more tips from Upgrading and Repairing PCs here.
To construct an animated 3D sequence, a computer can mathematically animate the sequences between keyframes. A keyframe identifies a specific point. A bouncing ball, for example, can have three keyframes: up, down, and up. Using these frames as reference points, 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 patterns—or textures—in 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 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 14 generations of 3D graphics hardware on PCs, a process that has lasted almost 20 years, as detailed in Table 11.17.
Table 11.17 Brief History of 3D Acceleration
Generation |
Dates |
Technologies |
Example Product/Chipset |
1st |
1996–1997 |
3D PCI card with passthrough to 2D graphics card; OpenGL and GLIDE APIs |
3dfx Voodoo |
2nd |
1997–1998 |
2D/3D PCI card |
ATI Rage, NVIDIA RIVA 128 |
3rd |
1999 |
2D/3D AGP 1x/2x card |
3dfx Voodoo 3, ATI Rage Pro, NVIDIA TnT2 |
4th |
1999–2000 |
DirectX 7 API, AGP 4x |
NVIDIA GeForce 256, ATI Radeon |
5th |
2001 |
DirectX 8 API, programmable vertex and pixel shaders |
NVIDIA GeForce 3, NVIDIA GeForce 4 Ti |
6th |
2001–2002 |
DirectX 8.1 API |
ATI Radeon 8500, ATI Radeon 9000 |
7th |
2002–2003 |
DirectX 9 API, AGP 8x |
ATI Radeon 9700, NVIDIA GeForce FX 5900 |
8th |
2004–2005 |
PCIe, DirectX 9.0c |
ATI X800, NVIDIA GeForce 6800 |
9th |
2004–2006 |
Dual-GPU rendering with PCIe x8, x16, OpenGL 2.x |
ATI X1900, NVIDIA GeForce 7800; ATI CrossFire, NVIDIA SLI motherboard chipsets and compatible cards |
10th |
2007–2008 |
DirectX 10, Windows Vista |
ATI HD 2xxx–4xxx, NVIDIA GeForce 8–9 series |
11th |
2009–2010 |
DirectX 11, OpenGL 3.x, OpenCL 1.1, Windows 7 |
AMD Radeon HD 5xxx–6xxx, NVIDIA GeForce 2xx–5xx series |
12th |
2010–2012 |
DirectX 11.1,OpenGL 4.1–4.2, Windows 8 |
AMD Radeon HD 7xxx, NVIDIA GTX 4xx-6xx series |
13th |
2013 |
DirectX 11.2, Windows 8.1, OpenGL 4.3–4.4, OpenCL 1.2, AMD Mantle |
AMD Radeon HD 8xxx series, NVIDIA GTX 9xx |
14th |
2014–2015 |
DirectX 12, OpenGL 4.5, OpenCL 2.0 |
AMD Radeon R5,R7, R9 |
With every recent graphics card on the market featuring DirectX 11 or greater capabilities, you don’t need to spend a fortune to achieve a reasonable level of 3D graphics. Many cards in the $100–$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. All current 3D accelerators also support dual-display and TV-out or HDTV 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 the faster the accelerator chip you can enjoy. If money is no object, you can buy a graphics card featuring the currently fastest GPU for more than $500. Fortunately, there are many choices using either NVIDIA or AMD GPUs in the less than $500 price range that offer plenty of 3D gaming performance, including support for dual-GPU operations (NVIDIA SLI or AMD CrossFire), which split rendering chores across the GPUs in both video cards for faster game display than with a single card. GPUs that support DirectX 11 or greater are the preferred choice for anyone who wants to play current generation games.
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. Cards under $100 are best used for low-cost replacements for chipset-integrated video. These cards typically have performance that is no better than that available from current CPU-integrated video.
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:
- Vertices—Locations of objects in three-dimensional space, described in terms of their x, y, and z coordinates on three axes representing height, width, and depth.
- Primitives—The simple geometric objects the application uses to create more complex constructions, described in terms of the relative locations of their vertices. This serves not only to specify the location of the object in the 2D image, but also to provide perspective because the three axes can define any location in three-dimensional space.
- Textures—Two-dimensional bitmap images or surfaces designed to be mapped onto primitives. The software enhances the 3D effect by modifying the appearance of the textures, depending on the location and attitude of the primitive. This process is called perspective correction. Some applications use another process, called MIP mapping, that uses different versions of the same texture containing varying amounts of detail, depending on how close the object is to the viewer in the three-dimensional space. Another technique, called depth cueing, reduces the color and intensity of an object’s fill as the object moves farther away from the viewer.
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 as follows:
- Geometry—The sizing, orienting, and moving of primitives in space and the calculation of the effects produced by the virtual light sources that illuminate the image
- Rasterization—The converting of primitives into pixels on the video display by filling the shapes with properly illuminated shading, textures, or a combination of the two
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:
- Scan conversion—The determination of which onscreen pixels fall into the space delineated by each primitive
- Shading—The process of filling pixels with smoothly flowing color using the flat or Gouraud shading technique
- Texture mapping—The process of filling pixels with images derived from a 2D sample picture or surface image
- Visible surface determination—The identification of which pixels in a scene are obscured by other objects closer to the viewer in three-dimensional space
- Animation—The process of switching rapidly and cleanly to successive frames of motion sequences
- Antialiasing—The process of adjusting color boundaries to smooth edges on rendered objects
Software Optimization
It’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 and websites 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 application programming interface (API).
Some video cards allow you to perform additional optimization by adjusting settings for OpenGL, Direct 3D, voltages, 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 or GPU vendor’s website.