Step by Step


The goal of this text is to give you some idea of how a 3D Card works. The 3D Image that appears on your screen in calculated using some mathematical formulas. To give a fluent appearance the card must do all these calculations 25 times per second. With that speed your eye can not see the difference between frames anymore. Calculating more frames per second is possible and might give you the idea that it looks better but the difference is minimal. These calculations are performed using the 3D-Pipeline. Like all pipelines it will do certain operations on data in various steps, when one step is finished the data is send to the next part of the pipeline where the second calculation is done on the same data. We will describe all the steps in the pipeline.

Step 1

The software program using a certain API will provide the 3D-world using points. This is the Basic input for the 3D-Pipeline.

Step 2

The provided points are now grouped as triangles (or Infinite Planes for PowerVR) this process is called Tessellation or Triangularisation. Each triangle (or inf. plane) needs 3 points to be defined. These points have x,y and z-coordinates (horizontal, vertikal and depth values). Since only 3 points are needed to define these basic building blocks the calculations for the main processor are reduced. It is obvious that there is more information available concerning the colors, alpha-value (transparency), etc...

Step 3

In this step the objects are rotated and moved if necessary and new values are calculated that describe the 3D world from the viewpoint of the camera (your monitor viewpoint, above the car, etc...). This is called the Geometric Transformation and is usually done by the main processor.

Step 4

At this stage the 3D Accelerator kicks in. Now the numbers that are calculated by the main processor are transformed into realistic 3D scenes on your computer monitor. At this stage the extra information like shading, filtering, texture mapping,... is used. In this step everything that is not visible on your monitor screen is removed. You should see this zone as a pyramid that stretches out in front of you, after all you are also unable to see what is happening behind you, the computer however has defined some of those objects and determines now what is in your visible area. It should be pretty obvious that this has the form of a piramid, you can see this by moving your hand more and more to the side without moving your head, at some point your hand will become invisible ,it is still there but it is no longer part of your visible area. Clipping means that these polygons are removed, they will not move through the rest of the 3D-Pipeline. At this stage the points (corners) of the polygon will be used to form the actual polygon. All points that are part of the polygon (usually about 100 to form 1 triangle) will be rendered. This means that you will be determining their color based on the texture maps, while applying some form of filtering. The perspective is corrected and anti-aliasing is added to remove other imperfections. Explaining how all this works would be to complex and mathematical. Until now the light sources were not used in the calculations. There are different algorithms to determine the influence of light.  First one is Flat-Shading every polygon gets a certain light value based on the distance of the polygon from the light source. This method gives poor results but requires very little calculation power. A second technique is known under the name Gouraud-Shading (similar technique is used by PowerVR, however they can not officially call it Gouraud Shading because their card is not based on triangles and the Gouraud Algorithm is only defined for triangles). Instead of determining one value for the whole triangle, three values are determined for the corners of the triangle. After this the points between the corners are determined by making a fluent transfer between the corners. Thanx to this technique, used by most games, the objects look round and the lines between the triangles aren't that visible any more. Other techniques are Phong- and Metal Shading. These techniques will add reflections and look even more realistic. Sometimes 3D accelerators add something called offset highlights which creates a similar effect by adding a reflection of the spotlight on the object. Most cards will remove the invisible points based on information found in the Z-Buffer. Each new point that is calculated will only be written to the frame buffer if the new Z-value determines that the new pixel is located in front of the old one. The PowerVR based cards use a different algorithm that is applied before any of the steps described in this step. Based on calculations the chipset determines which polygons are visible and only those are rendered, this technique saves a lot of work in the following rendering steps that were described here.

Step 5

In this last step the image in the frame buffer is finished. Now the card will switch to the other page of the frame buffer when the monitor is ready displaying the image in that buffer-page. On the PowerVR it works slightly different, the card renders parts of the screen called tiles, when a tile is finished it is send, using the busmastering principle, to the 2D graphics card that does the buffering.

Sometimes the whole process of determining the color of a pixel is referred to as the Rasterisation. The actions before step 4 are usually carried out by the main processor, they are referred to as the geometry setup. Some of the new 3D Accelerators do some or all of the geometry on chip, the GLINT processors are geometry processors and will relieve the main processor from some of the work. Especially low end main processors can achieve better results when using a 3D Accelerator that does some of the Geometry setup on chip. The PCX2 processor does some of the geometry setup which improved the results of this processor with 50% compared to the PCX1 processor that did NO geometry setup on board. The PowerVR processor could get a real boost when full geometry would be done on board, at this moment you would need a Pentium 400 MHz do be able to perform enough geometry setup so that the actual 3D Accelerator is limiting the speed. Even the latest PentiumII's are incapable of delivering this horsepower.