History began in 1996. Well, really it began in 1981, when screens ousted printers as the primary way of viewing a computer’s output, leading IBM to release their MDA video card. With a change 4KB of memory and capable of actual electronic text, it was quite the monster.
Skip forward to 1987 and VGA’s eye-popping 640×480 resolution and 256 colors, and PC gaming was finally ready to go large. Add another ten years to that, and there we are at the 3DFX Voodoo graphics accelerator, the card that begat the age of 3D.
Sure, there were 3D accelerator add-in cards doing the rounds over a year prior to the release of the now famous Voodoo board – including NVIDIA and ATI’s first efforts, but it was 3DFX’s opening salvo that changed everything. Prior to 3D cards, we did have 3D games of a sort – but super-blocky, jerky-slow 3D that was painfully managed by the CPU and not the clean edges and natural framerates a dedicated 3D rendering device could offer.
The Voodoo was something every PC gamer craved and – at odds with today’s ridiculously over-priced top-end cards – could actually afford, as a crash in memory prices meant the sporty 4MB of video RAM it carried didn’t cost the Earth. It was a curious beast – with no 2D rendering capabilities of its own, this PCI board had to be linked via daisy-chain cable to the PC’s standard VGA output, only flexing its muscle during 3D games. The external cable meant a little degradation of image quality, in both 3D and 2D, but no-one really cared. They were too busy rotating their in-game cameras around Lara Croft’s curveless curves, awestruck.
The scale of what 3DFX achieved with the Voodoo is less evident from the card itself, and more in how it birthed a raft of competition, and kickstarted the 3D revolution. If you thought the NVIDIA-AMD graphics bickering is bitter, confusing and exploitative today, back in the late 1990s, there were over a dozen 3D chip manufacturers warring for a slice of PC gaming pie. PowerVR, Rendition, S3, Trident, 3D Labs, Matrox… Big names that once earned big money became, come the early years of the 21st century, forgotten casualties of the brutal GeForce-Radeon war. Some still survive in one form or another, others are gone entirely. Including 3DFX itself, but we’ll get to that later.
3DFX also did the unthinkable: they defeated Microsoft. While DirectX, to all intents and purposes, is now the only way in which a graphics card communicates with a Windows game, back in the Voodoo era it was crushed beneath the heel of 3DFX’s own Glide API. Not that it was any less evil. While DirectX was and is Microsoft’s attempt to inextricably bind PC gaming to Windows, Glide was as happy in the then-still-prevalent DOS as it was in Windows 95. However, it only played nice with 3DFX chips, whereas DirectX’s so-called hardware abstraction layer enabled it to play nicely with a vast range of different cards, so long as they conformed to a few Microsoftian rules.
Glide vs DirectX
In theory, developers would much prefer a system which required that they only had to code for one standard rather than come up with multiple Tenderers – and, eventually, that did become the case. In the mid-to-late 90s though, the earliest DirectXes – specifically, their DirectsD component – were woefully inefficient, and suffered very vocal criticism from the likes of id’s John Carmack. Glide may only have talked to Voodoos, but that it talked directly to them rather than through the fluff of an all-purpose software layer made it demon-fast That, coupled with the card’s own raw performance, made the Voodoo impossibly attractive to gamers – and so the industry widely adopted Glide. Glide itself was an extensive modification of OpenGL, another hardware-neutral standard which predated and then rivaled DirectsD. Created by high-end workstation manufacturer SGI and then expanded by a sizeable consortium of hardware and software developers, OpenGL was as close as you could get to an altruistic 3D API. While it continues to this day, had it been more successful in fighting off the Microsoft challenge, we wouldn’t now suffer perverse situations, such as having to buy Vista if we want the best-looking games.
Another 3DFX masterstroke in the late-90s was the custom MiniGL driver that brought Voodoo power to OpenGL games -specifically, to id’s newly-released Quake. The card’s close identification with the shooter that popularized both online deathmatch and true 3D gaming – as opposed to Doom, Duke Nukem 3D et al’s fudging-it approach of 2D sprites and a 3D viewpoint that only worked when looking straight ahead – only cemented its must-have cred.
As 3D gaming grew and grew, 3DFX’s dominance seemed unassailable. The Voodoo 2 was a refinement of the first chip, and made a few image quality sacrifices compared to rival cards – notably no 32-bit color support or resolutions above 800×600 – but again offered so much more raw performance than anything else. The Voodoo Rush could handle 2D as well as 3D, and though the latter’s performance dipped, it made for an easy and appealing single upgrade. And SLI, in its original form, long before NVIDIA got to it, birthed the hardcore gaming hardware enthusiast – two Voodoo 2s in one PC, offering yet more speed and, best of all, razor-sharp 1024×768 resolution.
So what went wrong? Unfortunately, riches begat the desire for further riches. As remains the case today for NVIDIA and ATI, 3DFX didn’t actually manufacture 3D cards themselves – they just licensed their chips to third party firms with massive silicon fabs and took a cut of the profits. Come the Voodoo 3,3DFX had other plans – in 1998 they bought up STB Technologies, one of the bigger card-builders of the time. The plan was to then directly sell the highly-anticipated (but ultimately disappointing) Voodoo 3 and earn mega-bucks. Unfortunately, this decision severely marked most of the other third-party manufacturers, who summarily refused to buy future Voodoo chips. The combination of this, 3DFX’s retail inexperience, and the superior feature set (though lesser performance) of NVIDIA’s RIVA TNT2 card caused major damage to the firm’s coffers. NVIDIA added insult to injury with the GeForce 256, whose performance absolutely demolished the Voodoo 3.3DFX’s response to this first GeForce, the consumer-bewildering simultaneous release of the Voodoo 4 and 5, came too late. The superior GeForce 2 and its new arch-rival the ATI Radeon had already arrived, and Microsoft’s Direct3D API was finally proving much more of a developer darling than Glide.
Faced with bankruptcy, in 2001 3DFX agreed to be bought out by NVIDIA.
One secret of NVIDIA and ATI’s success was hardware transform and lighting. Prior to T&L, what a 3D card did was to dramatically speed up the rendering of textured polygons – but, in very simple terms, it didn’t really do anything to the resulting 3D scene. Lighting and manipulating the polygons was still left to the processor, which frankly had more than enough on its plate already, what with Al and scripting and physics and all that. The first GeForces and Radeons took this strain off processors, and suddenly there was one less restraint on a game’s performance. The expensive GeForce 256 was seen as a performance revelation, but it took a while for hardware T&L-enabled games to make an appearance. When they did, the superior GeForce 2 range was in full swing – most pertinently in its super-affordable MX flavor. This in itself was a turning point. It was the real beginning of today’s hideously confusing splintering of 3D card product lines in order to hit every possible girth of wallet. All told, eight different flavors of GeForce 2 snuck out of NVIDIA’s doors. Meantime, ATI was offering roughly similar variants of its new, and comparable Radeon range.
Both the earliest GeForces and Radeons had made faltering footsteps into pixel and vertex shaders, which were arguably the last real paradigm shift in 3D cards before they crystallized into the current trend of refinements-upon-a-theme. It was, however, the GeForce 3’s (and, later, the Radeon 8500’s) programmable pixel and vertex shaders that really made a difference – partly because they were the first to be fully compliant with Microsoft’s DirectX 8, which by that point almost entirely ruled the API roost.
Previously, if a game wanted to render, say, a troll’s leathery skin, it had two choices – slap a bunch of fiat textures over a simple polygonal frame, as seen in the cubist characters of early 3D gaming. Alternatively, painstakingly model that troll with all manner of minute lumps, bumps and crenulations – ie. a whole lot more polygons, which will likely tax the 3D card’s brute 3D rendering too far.
A pixel shader can create the illusion of such topography by applying lighting color and shadowing effects to individual pixels: darken this small area of troll hide and from a slight distance it’ll appear indented, lighten a few pixels here and suddenly they’ll look like a raised wart. No extra polygons required. A pixel shader doesn’t just affect the illusion of surface shape, but also lighting: color a few pixels of troll skin with a subtle range of oranges and yellows, and they’ll appear to reflect the glimmer of a nearby fire.
Then there’s vertex shaders. A vertex is one of a triangle’s (the building blocks of a 3D scene) three points – the meeting spot between two of its lines. A vertex shader can transform that meeting spot, moving or distorting it to create new shapes. The results? Stuff like dimples when a character smiles, clothes that seem to rumple when a limb is moved, the undulating surface of a stormy ocean… Roughly, a pixel shader changes pixel appearance, while a vertex shader changes object shape. While shaders existed pre-GeForce 3, they : weren’t programmable – developers had to make do with a limited range of preset graphical trickery. Come this breakthrough card, they could define their own effects, and thus offer game worlds – and objects within those game worlds – that looked that much more distinct from each other. The GeForce 3 introduced shader pipelines, specialized areas of a GPU that crunch the millions and billions of computations involved in applying shader effects to a 3D scene that (ideally) updates 60 or more times every second.
Over the course of GeForces 3 to 9 and Radeons 8 to HD we’ve seen, along with increases in dockspeed and memory, the numbers of shader pipelines in a GPU increase, so it’s able to process more shader effects more quickly. In tandem with this are improvements in shader modeling – a hardware and software standard that defines what effects can be applied, and how efficiently it can be done. Greater efficiency means greater complexity of effect is possible, so the higher the shader model, the better-looking a game can be. This is not without its problems, as the increasing number of Xbox 360 ports that require shader model 3.0 graphics cards infuriatingly reveal. Your older 3D card might have the horsepower to render Bioshock’s polygons, but because it’s only capable of Shader Model 2.0, it doesn’t know how to interpret all those instructions for per-pixel coloring effects and vertex distortions.
Last year’s DirectX 10, and the GeForce 8/9s and Radeon HDs which support it, introduced Shader Model 4.0, aka unified shaders. Rather than each having dedicated pipelines, the pixel and vertex shaders now share, so the GPU can adapt that much more to exactly what a 3D scene is calling for. So, if a scene doesn’t require too much pixel shading it can instead dedicate more pipelines to vertex shading and vice-versa. And there, essentially, we now sit.
While they superficially seem like grand progress, really multi-card setups such as NVIDIA’s SLI and AMD’s CrossFire are simply applying the grunt of two or more GPUs, and so far not terribly efficiently at that – you can expect a second card to add something in the region of a 30 per cent performance boost. However, we’re potentially approaching another moment of major change. There’s an awful lot of bitter industry arguing about it – not unsurprisingly, as it would likely involve the abandonment of 3D cards in favor of processors. Ray tracing is its name, and the likes of Intel are convinced it’s the future of game graphics. The likes of NVIDIA disagree.
While current 3D cards employ smoke and mirrors to create the appearance of a naturally-lit detailed scene, ray tracing simulates the actual physics of light. A ‘ray’ is cast at every pixel on the screen from a virtual in-game camera. The first object each ray hits calls up a shader program that denotes the surface properties of that object; if it’s reflective, a further ray will be cast from it, and the first object it hits in turn calls up its own shader – and so forth, for each of the scene’s thousands, millions or billions of pixels, for every frame of the game. On top of that, a secondary ‘shadow’ ray fires from each object the primary rays have hit towards the scene’s light source(s). If this ray hits another object en route, then the system knows the first object is in shadow. It’s genuine lighting, and this is exactly the system that the likes of Pixar use to render their movies. Thing is, if you’re running a monitor with a resolution of 1280×1204, that’s 1,310,720 pixels, and therefore at least that many rays need to be calculated per frame, plus far more again for all the reflections and shadows and so forth. Bump the resolution up more and you’re easily up to a trillion processor calculations per second. Which is why each frame of a Pixar movie takes hours or days to render.
Gaze into my Ball
The goal for gaming is, of course, real-time ray tracing, and for that we need either obscenely powerful, ultra-multiple core processors, or a specialized processor built specifically for ray calculation. Intel currently have a basic ray-traced version Quake 4 running at 90 frames per second, but they’re using eight-core server chips to do it. That’s a little beyond most gamers’ means for now – but very possibly not-too-distant future territory. Even NVIDIA has grudgingly stated ray tracing is the future – but only part of that future, it claims. It may be that processors will eventually kill off 3D cards, it may be that GPUs, instead, adapt to become specialized ray processors, or it may be that ray tracing happens alongside traditional 3D rendering – the CPU and GPU combining for a best of both worlds situation. In the meantime, John Carmack is talking up the return of the voxel as a possible future.
Either way, a huge change is coming for 3D gaming. After a near-decade of the same old Radeon-versus-GeForce chin-scratching and upgrade cycle, its impossible not be excited about what tomorrow holds.
By MasterTux from Pixabay