MAGAZINE

A Brief History of 3D

Edge Staff's picture

By Edge Staff

October 27, 2008

See also:

Related Articles:

Filled Polygons




While many early wireframe games used vector beam displays, the cathode-ray tube was far more common among displays until LCD and plasma technology came along. CRT displays are raster-based, the image being made up of rows of thousands or millions of coloured pixels. Rendering, or rasterising, polygons on such displays is a process in which the image is ‘painted’, pixel by pixel, as the display scans each pixel on every line of the screen from left to right, top to bottom. By computing the edges of each polygon in each scan line, they can be painted with colour in order for them to appear solid. This is still used today in the core of GPU rasterisers and is part of the family of Bresenham line drawing algorithms, which determine how pixels can represent straight lines. Though its atypical game design prevented it from being a hit, Atari’s I, Robot, released in 1983, is now considered the forefather of the modern 3D videogame, with its use of filled 3D polygons and camera controls.

Gouraud Shading




Though polygons are often employed to represent smoothly contoured shapes, they’re let down by the fact that polygons are inherently angular. Gouraud shading is a technique that blends the gradients of colour making up their facets, visually softening them. In the process, each vertex that defines a polygon is given its own colour, with differences between adjacent vertices interpolated during rasterisation, so the shading changes smoothly across the polygon. It’s a method often used alongside basic realtime lighting, which is calculated by computing the angle between the vector of a simple directional light and a polygon’s ‘surface normal’ – that is, the direction its flat face is pointed. The angle is analogous to the amount of light falling on the polygon and shaded accordingly. If the surface normal values between adjacent polygons are averaged, however, you can, in effect, move the surface normals to being ‘vertex normals’, and therefore use Gouraud shading to make lit surfaces look smooth, a process used to great effect by Star Wars: TIE Fighter, released in 1994.

Vertex: In computer graphics, a vertex is a vector that has additional information attached to it – for instance, a colour, a surface normal, a texture coordinate or a combination thereof.

Texture Mapping




One of the main challenges in rendering 3D graphics is creating surface detail, because representing every little element as coloured, shaded polygons is computationally expensive. Texture mapping is therefore employed to simulate surface detail, a technique that’s fundamentally important to 3D graphics. In its basic form, texture mapping is pasting an image on to a polygon. The process assigns the vertices in a polygon to specific pixels in a 2D image called a texture map. When the polygon is rasterised, the 2D texture coordinates are interpolated to find out which pixel in the texture map (the ‘texel’) matches each screen pixel to map the texture onto the surface of the polygon. Developers had attempted to use texture mapping since the birth of filled 3D polygons, but it wasn’t until Descent was released in 1995 that the process showed its full potential, with a complete 3D environment of walls, floors and in-game objects rendered as fully textured polygons.

Scaled Sprites




In order to match the visual detail and colour featured in 2D games in early 3D worlds, developers looked to sprites. In 2D games these small images would normally be rasterised at full scale on to the screen, but for 3D games they needed to be scaled depending on their distances from the viewpoint. In such systems the sprites representing gameworld objects are placed at vectors – as the image is rasterised, the pixels from the source image are copied multiple times to adjacent pixels or skipped in order to scale the sprite correctly, a process called linear interpolation. It’s a technique made famous by Sega with games like 1985’s Space Harrier, which ran on its now legendary System 16 arcade hardware. Ironically, modern GPUs actually emulate sprites using textured polygons aligned to square up to the camera’s view angle, exactly what Sega was trying to simulate, such as the fronds of leaves on Oblivion’s trees, the ‘sprites’ in Castle Crashers or the smoke from skidding wheels in racers like PGR.

MIP Mapping




Simple texture mapping with high-resolution textures inefficiently uses both memory and processing power, and tends to exhibit various problems with shimmering artefacts (see ‘complex filtering’). MIP mapping solves both of these problems by storing a series of scaled-down versions of each texture map, with each successive map being half the size of its parent. When a texture is applied to a polygon, the rasteriser computes how far the pixel is to the camera. This defines which MIP map to use, though several MIP levels are typically used and interpolated between to get smooth transitions. MIP mapping predates the commercial use of GPUs, but the most notable examples occur after the GPU’s introduction, such as Rage Software’s shooter, Incoming. Released in 1998, its fast, smooth 3D was a showcase for GPU-enabled effects.

Tina_Russell's picture

Waaah! You forgot cel-shading! My fond memories of Jet Grind Radio are aching.

Great article! I’m really glad I know what all those fancy words mean now, seriously. It’s fascinating to learn the various tricks that devs use to make the games look real, when the way light really works would be too expensive even for today’s powerful processors.

Shifty Geezer's picture

A nice overview, but I was a little disappointed by the lack of 'future tech'. LittleBigPlanet showcases a new lighting technique that creates a very convincing realtime GI look. Alex Evans work is documented here :
http://ati.amd.com/developer/siggraph06/Evans-Fast_Approximations_for_Li...

He goes into more technical detail here, in a combination paper that links in with some other methods. Evans' GI solution is the last chapter. :
http://ati.amd.com/developer/techreports/2006/SIGGRAPH2006/Course_26_SIG...

The method isn't broadly applicable and only found its way into LBP due to LBP's 2.5D design, but it shows an alternative lighting model and how novel thinking can find striking solutions.

littlewilly91's picture

This is a brilliant article EDGE. I've just been on an animation course and i really needed the basis like this to understand what the hell i was doing. I didn't most of the time. So although i can use Maya quite well it feels pretty hollow.
This has been really helpful. I think they should put this sort of thing in as the first chapter in the textbooks, and have references to pages where each effect is explained in more detail, and pages which explain using it in Maya. You could have a checklist for your understanding of each technique. Then you could skim through in revision, reading this first article and easily revising more if you don't understand. We students are kind of desperate for this stuff. It's knowledge that teachers tend to assume we have. Teachers try to explain each deep and convoluted technique, but loads of students get left behind in a sea of unknown intensely technical talk that means nothing to them. The teachers tend to rely on all their own familiar terminology and like to give a focussed little speech that assumes we know all the background information, just so they can delve into a technique quickly, rounding it out for their own benefit. We really need a well ordered way of studying it ourselves, just to get a grounding. It needs to be in our own time, backtracking to what we need to know when necessary.

John_Ryan's picture

I was fascinating how much of this I actually understood just because I work with satellite imagery on occasion. Granted, I've HEARD and could basically explain all of it to someone dumber than me, but someone who did this stuff for a living would see right through me.