Graphic Card Geometry

In the geometry stage, all 3D images are broken down into polygons. Each polygon is analysed and assigned various characteristics. Objects are defined for their co-ordinates and combined into a single co-ordinate system called a World Space Co-ordinate. Any elements which fall outside the display window are clipped or discarded.

User input (i.e. playing) within the World Space causes the object to move. As it moves, its geometry must be revised and recalculated. This is known as transformation and involves changes to the X, Y and Z direction. A good example is Duke Nukem 3D: as the hero (the player) runs through a door and turns left into a room, the whole scene changes; as he moves closer to the door it must get bigger, and as he turns left a whole new room scene must be created, giving the illusion of depth. Added to this are changes in camera, lighting, texture and colour of the objects, all of which must be calculated or recalculated.

Known collectively as geometry set-up – this has traditionally been the last stage of the graphics pipeline performed by the main CPU before the 3D processor takes over to perform the rendering function. The associated calculations can be viewed as performing three specific functions:

  • Scaling makes objects bigger or smaller according to how far back they are in the field of view
  • Translation involves moving the object to its correct location
  • Rotation turns the object so that it attains its correct position.

In a game with twenty different objects on-screen at any given time, the CPU has to complete each of the above procedures for each object. And if this weren’t complex enough, computer screens refresh at more than seventy times a second. Therefore, any changes in the position of these objects must also be calculated and displayed for every refresh of the screen.

Triangle setup converts the data created by the geometry setup into a form that can be input into a 3D accelerator. Some graphics cards have their own triangle setup engines which take some of the strain away from the system processor. However, even these triangle setup units are able to process only a small section of the data: the rest must be handled by the main CPU.