he past decade, 3-D will bring about new ways of viewing and analyzing data.
Timing puts the truth somewhere between these two opposing views. Innovators at places such as Xerox's Palo Alto Research Center (PARC) are alr
eady showing early software designs that use 3-D to add layers of information to databases and interfaces, making today's 2-D software look Spartan by comparison. But commercial versions of these products are at least a year or two from widespread use.
In the meantime, buyers beware: Not all the chips, boards, and APIs that spawned this year's crop of low-cost 3-D products will have the ability to run tomorrow's applications. To keep their designs affordable, vendors of low-end 3-D products made some compromises. As a result, some game-optimized chips cannot provide the processing power that professional-level 3-D accelerators now deliver for simulations and CAD applications.
The bottom line is that today's low-cost 3-D world is neither insignificant nor fully formed. This situation forces us to look beyond the glittering graphics to make judicious choices about 3-D.
Real 3-D
How might 3-D eventually change the way in which we work? The first phase of mass-market 3-D produ
cts will bring traditional 3-D applications, such as architectural walk-throughs, virtual reality, animation, and state-of-the-art games, to mainstream desktops. Next we'll see 3-D applied to standard applications, such as graphics editors, spreadsheets, and even word processors.
To see the 3-D possibilities for general business applications, consider the advanced spreadsheets and databases that already work in three dimensions. Today you can populate a structural cube with data and then slice and dice it horizontally, vertically, or across a 3-D plane.
For instance, you might set up a 3-D spreadsheet to hold a year's worth of sales data, with each 2-D sheet listing the sales of a number of products for one month. Each layer of the spreadsheet holds information for a different month. To view the annual sales of a single product, you simply cut across the cube to retrieve the product's data for all 12 months.
The problem with this approach lies in viewing such a data cube on a flat surface. O
nce you cut across the cube, today's 3-D spreadsheets simply build a new 2-D view. Developers have tried to simulate the 3-D experience by adding slick interface tricks, such as drilling down on data by double-clicking on a functional heading or displaying the data within complicated 2-D matrices.
But in the end, 3-D spreadsheets have not met their potential because of the inherent weaknesses of working with 3-D data in 2-D space. In a true 3-D environment, you will be able to not only build a data cube but also rotate the cube in 3-D space and arrange the data in enlightening new ways.
Before that happens, we may see many examples of gratuitous 3-D. Developers and marketing wizards will concoct spinning logos and other graphical gimmicks, eye-catchers with little or no real value. But user-interface (UI) design is evolving to grasp 3-D's potential and turn it into something useful.
Whether or not software developers quickly turn 3-D into something that is useful for business applications, t
here is no doubt that ubiquitous 3-D is on the way. Consider Intel's MMX technology. MMX adds 57 new instructions to the x86 instruction set to accelerate multimedia applications, such as 3-D and 2-D graphics, video, audio, speech synthesis and recognition, and communications. According to Intel's simulations, we can expect to see performance boosts of between 50 percent and 100 percent.
MMX is slated to appear first in a new version of the Pentium processor, code-named the P55C, which is due early next year. Look for MMX support in APIs such as OpenGL and DirectX. (For an in-depth look at MMX technology, see the sidebar "MMX Accelerates the x86".) AMD and Cyrix are both planning to support MMX instructions in their future microprocessors.
There are various ways to distribute 3-D tasks between the CPU and the graphics chip. Graphics boards work with integer values; therefore, at the very least, the CPU must translate an application's floating-point values into integers.
Most often, the graph
ics
chip works
as a rendering engine, while
tessellation
(breaking up a 2-D image into polygons) and
geometry
(adding lighting and perspective) are left to the PC. For the third processing step,
rendering
(adding surface characteristics), low-cost 3-D boards often economize by combining frame, texture, and
z-buffers
(stored depth values) and allocating memory dynamically.
For example, if an application doesn't need a z-buffer (many games do not), the available memory can be used for the texture or frame buffer. Many applications set up the frame buffer in main memory, which is a mixed blessing: This approach saves cost by requiring less memory on the card, but it introduces a
major bottleneck
, as hidden surface removal has to be done across the PCI bus.
The majority of high-end 3-D accelerators employ separate buffers for frame, texture, and depth information, with each buffer having a capacity of at least 2 MB. However,
the cost of buffer memory alone keeps these products out of the mainstream market.
The 3-D Hardware Wave
Although 3-D accelerators divvy up processing tasks in similar ways, 3-D
chip architectures
can vary considerably. Some chips are programmable, such as Rendition's RISC-based Vérité and Chromatic's Mpact, which uses a very-long-instruction-word (VLIW) architecture. Two other programmable chips, the TM-1 from Philips and the Mfast from IBM, were not yet shipping at press time.
The performance of programmable 3-D chips depends to a large extent on the low-level software that drives them. Both Rendition and Chromatic currently supply such firmware. OEMs that write their own low-level software can enhance these processors with new features, data formats, or algorithms.
The Mpact's Mediaware microcode modules allow systems designers to enable or disable specific functions -- such as 3-D graphics, videoconferencing, and telephony -- to cr
eate a single hardware design with a number of different personalities. Unlike the Mpact, the Vérité was designed specifically for 3-D acceleration. It includes a hardwire "pixel pipeline" for critical 3-D operations, such as texture mapping and blending, while the RISC core is responsible for geometry setup and filtering; this relieves the CPU of the majority of the 3-D work load.
Hard-wired solutions, such as those from Nvidia, 3Dfx Interactive, and 3Dlabs, sacrifice this flexibility but often achieve higher performance. As
APIs
and other standards evolve, customers must depend on these vendors to update their designs quickly or, in some cases, to develop new software drivers to support the emerging standards.
Nvidia's NV1 requires additional developer support because of its proprietary curve primitive. Instead of building curved surfaces from small polygons, the NV1 generates curves directly to dramatically improve performance when an application requires text
ured curves. The drawback is that developers must port applications to the Nvidia chip before they can take advantage of these curve primitives.
Many of the graphics companies now offering low-cost 3-D chips and boards have been selling to the 2-D graphics market for years. They offer their customer base a terrific advantage: The new 3-D chips are pin-compatible with the previous generation, so the 3-D chips can slip into a proven card design. For example, the S3 Virge is pin-compatible with the popular S3 Trio64V+. On the downside, not all of these mainstream graphics vendors have the expertise of the established 3-D companies.
3Dfx is one of the few companies in the low-cost 3-D market with a strong 3-D résumé. The firm has made a business of replacing the expensive proprietary engines used in dedicated arcade machines with high-performance Pentiums. Focusing on this specialty, 3Dfx has designed a dedicated 3-D chip that delivers impressive 3-D acceleration but lacks integrated fun
ctionality, such as standard GUI acceleration and motion-video playback.
A dedicated 3-D solution does not replace a PC's graphics card; instead, it complements it with a "pixel pump" that works in parallel with the graphics accelerator that's on a separate PCI board. After the 3-D chip calculates the pixels, they pass across the PCI bus to the graphics card.
Like the 3Dfx Voodoo Graphics accelerator chip set, VideoLogic's PowerVR is a dedicated 3-D chip that requires an existing graphics accelerator. To compete with integrated solutions, 3Dfx has formed a partnership with Alliance semiconductor to combine the Voodoo with Alliance's ProMotion graphics controllers.
Bring on the Boards
Now that 3-D chips are appearing on commercial boards, we are seeing some 3-D warts along with the glitter. One particularly unpleasant surprise is that 3-D acceleration in many low-cost boards works only in one mode -- namely, at a resolution of 640 by 480 pixels with 64,000 colors.
T
his is fine for play, since today's 3-D games don't require any more screen real estate than that. But this situation will eventually change. As more business applications use 3-D, 640 by 480 is becoming all but useless, and switching back and forth between resolutions quickly gets tedious. It's better to instead consider cards that accept additional memory to support 3-D acceleration at 800 by 600.
Many vendors bundle games with their 3-D boards. Some of these games use special features of that vendor's hardware; we've even heard of programs that use a high-level API, such as Microsoft's DirectX family of interfaces, and still use hardware references to stop users from switching horses. In addition, games developers are fond of squeezing every last bit of performance out of the hardware.
Since the jury is still out on how much of a performance penalty the multiple software layers in Microsoft's 3-D APIs will inflict, some people might be tempted to bypass them. In the long run, only hardware and
software that supports the relevant APIs will survive. Until then, shoppers should select a board that has all the drivers needed for it to perform with the software they expect to use.
If you have a high-performance graphics board and just want 3-D acceleration, then something like VideoLogic's PowerVR, working in parallel with the main graphics board on a separate PCI card, could be an ideal solution.
Nonstandard 3-D
Currently there are about 50 APIs for 3-D. This situation is not conducive to matching the hardware flood with the ground swell of cool mass-market applications.
APIs -- the libraries of boilerplate routines that define standard sets of graphics functions -- give programmers "hooks" into an otherwise-closed environment, such as an OS, a database, or hardware drivers. In the 3-D arena, APIs also function as an isolating layer to protect applications programmers from the idiosyncrasies of proprietary hardware.
The three leading API contenders for mainstr
eam 3-D are OpenGL, QuickDraw 3D (QD3D), and Direct3D. The latter has the advantage of Microsoft's marketing might, while the cross-platform capabilities of the other two make them important for developers not tied to Windows.
OpenGL originated as the Graphics Library for the Silicon Graphics, Inc. (SGI), Iris graphics systems. It's the oldest of the three APIs and now has the broadest base among Mac, PC, and Unix developers. It focuses on drawing 2-D and 3-D objects quickly and is generally more low-level than the other two APIs.
For instance, it does not include complex predefined objects, automatic shadows, ray-tracing, or radiosity functions. It's currently the undisputed standard for scientific and engineering applications, and it is associated more with high-end CAD, simulation, and visualization than with photo-realistic games. In a move to broaden the API's appeal from the professional market to general-purpose desktops, SGI recently teamed up with Sun Microsystems to develop CosmoGL, whic
h is a variant of OpenGL that speeds texture mapping for 3-D Web applications and games in Windows 95 and NT.
OpenGL offers an impressive, if basic, array of approximately 120 functions for polygon shading, rotation, scaling, atmospheric effects, depth cueing, and other functions. But OpenGL lacks the object-oriented design of QD3D and Direct3D. You use the API as a
state machine
, which means that parameters "stick" until you change them. This saves work for developers, but nasty bugs can arise if the programmer forgets to save states and restore them when exiting from a routine.
OpenGL uses a client/server model, so it enables you to process compute-intensive tasks in a distributed environment. Because it does not include windowing functions, it works independently of the UI. It attaches to OSes and GUIs through extension libraries.
OpenGL is complemented by Open Inventor, a higher-level, object-oriented library. You can use Open Inventor as a layer above OpenGL to add features suc
h as geometry, motion and lighting, and material editors. Like OpenGL, Open Inventor has been licensed to other companies. For instance, the Virtual Reality Modeling Language (VRML) format for virtual worlds on the Internet is based on Open Inventor.
QD3D, which premiered in early 1995 as a graphics extension to the Mac OS, now includes Windows support. Because QD3D is fully object-oriented, new object instances can inherent complex features (including lighting, geometry, and textures) to simplify the construction of 3-D images.
QD3D stores scene and object infor-mation with its own portable data format, which is called 3D Metafile (3DMF); it offers a choice between a compact binary and a human-readable version and supports the cutting and pasting of 3-D objects via the Clipboard. You can store QD3D objects in image databases and use simple drag-and-drop techniques to move objects from the database into a 3-D scene.
QD3D includes standard 3-D primitives, but, unlike OpenGL, it knows about co
mplex geometry, such as nonuniform rational B-splines (NURBS). Its extensible architecture enables you to add new software-rendering engines and access hardware accelerators. Another nice detail is the interactive renderer, which lets you see and manipulate objects directly during design. Many applications let you work with the interactive renderer directly.
For developers who'd rather work with a low-level, but still hardware-independent, 3-D API, Apple offers the Rendering Acceleration Virtual Engine. RAVE can act as a plug-in module within QD3D to provide a hardware abstraction layer (HAL). RAVE includes basic graphics primitives; however, it doesn't offer high-level functions, such as the importing of objects. Like QD3D, RAVE supports Macs and Windows-based machines.
Microsoft's Direct3D, the latest member of the DirectX family of interfaces, is part of a three-layered structure (Direct3D itself is actually the middle layer). The lowest layer is the HAL, which contains the hardware-specific de
vice drivers. Above that is the low-level API layer, which grants access to hardware features while maintaining hardware independence. The layer above it contains Microsoft's own high-level API, previously known as RealityLab (which was snagged in Microsoft's acquisition of RenderMorphics). This highest layer can also accept other APIs as plug-ins, including OpenGL. Above these three layers is the applications layer; below them lies the hardware.
Applications built on the DirectX family can query the system to determine what functions are implemented in hardware. For functions that are not supported, the application might substitute a simpler algorithm. However, Direct3D can also emulate any function in software, thanks to the Hardware Emulation Layer (HEL).
Like QD3D, Direct3D offers a clean, object-oriented, extensible architecture. What functions are actually available depends to some extent on the high-level layer. With the default RealityLabs API on top, Direct3D is not as versatile as QD3D b
ecause it lacks basic 3-D objects, such as cylinders, spheres, and cones. Still, it offers functions that go beyond OpenGL's, including animation features, which are particularly useful for games developers. Direct3D's main drawback it that it's limited to Win 95.
The 3-D Future
Eventually we may take 3-D for granted, much like gigabyte-capacity hard drives and 16 MB of memory. However, because 3-D adds complexity to applications, it will take a fair amount of time for software developers to master the technology. Therefore, we probably won't see 3-D hit critical mass until 1997 or later. Until then, only games publishers, who stand to profit first and most by 3-D, will be willing to devote significant resources to the development of 3-D.
Just like the GUI-enhanced software that seemed so cumbersome to users for many years, 3-D will suffer many development blunders along the way before killer 3-D apps emerge and 3-D UI elements become as natural and efficient to use as today's
dialog boxes and scroll bars. And as 3-D becomes pervasive, business users will need, rather than just want, 3-D enhancements.
What can you do with 3-D besides play games?
To find out, join BYTE editors and 3-D chip designers in an on-line discussion from October 21 through 25 at
http://www.byte.com
.