Graphics card
From the movies we watch to medical sciences and imaging, defence purposes and even manufacturing processes (Computer Assisted Manufacturing) the impact that 3D rendering has on the world is phenomenal. 3D acclerators (graphics cards) have acted as catalysts for the growth of 3D modeling, rendering, and animation.
Nomenclature of graphics cards
The year 1981 and the first PC video card from IBM seems ancient history.We have gone from single colour video cards to cards that can work with millions of colours. The real graphics war for desktop Pc's didn't start until 1997 when 3DFX delivered voodoo to the world with then powerful features like mid-mapping,z-buffering and antialiasing. Rivals NVIDIA came up with their TNT and TNT cards following the Voodoo 2, and these were first AGP based cards.
Let's move on to NVIDIA's Geforce 256 graphics card on August31,1999). It essentially had 4 pixel pipelines that could handle a single, half precision pixel operation in a clock. Core and memory speeds were 120/166 MHz and with a peak output of 480 million pixels per second and 15 million triangles per second, the geforce 256 was hard to beat. November 8,2006,seven scant years later and the geforce family's eight generation of graphics cards were unveiled.their latest 8800GT,which is a very value oriented card,churns out 16.8 billion triangles per second,a difference compared to the sun and the moon. But there are much common things common with graphics cards.
GPU Facts
In graphics cards GPU (Graphics Processing Unit) is at the heart of its technology. Think of the GPU as a processor dedicated solely to graphics.Just as a CPU slots into a motherboard, A gpu is affixed on the PCB (Printed Circuit Board) of the graphics card. Unlike a CPU a GPU can never br removed from its PCB. Today's GPU's have the ability to number crunch enormous amount of data and are more powerful, even than the fastest Quad core. NVDIA's 8800GTX GPU, for example has 128 streaming processors inbuilt and each is capable of handling a thread of data. The 8800gtx has 681 million transistors on its 90nm die.Increases in performance have gone hand in hand with increases in programmability with DX9.0c,giving way to DX10 and finally DX11.
The characteristic properties of a GPU mainly depends on two variables:
1.The core speed:
This is the rated frequency in (MHz or GHz etc.). A general thumb rule is the faster the core, the faster the GPU.
2.Pixel shaders and Vertex shaders:
A vertex shader basically takes a 3D image made up of vertices and lines and draws a 2D image out of it.,which is displayed in the form of pixels in the screen. Pixel shader is the refinement of the vertex shader. So there are two ways to increase the performance of a graphics core-increase the clock speed or increase the count of shader units.
How does the core works?
Stage 1:Input
The GPU is designed to work simple vertices and for this purpose every complex shape ina 3D scene is first broken down into triangles-the basic building blocks of any 3D model irrespective of how complex.All shapes like rectangles,cubes and even curved surfaces are broken down into triangles. Developers will use either of the computer graphics library software (OpenGl or Direct3D) to feed each triangle into the pipeline,but one vertex at a time.
Stage 2 :Transformations
GPUs have their own localised coordinate system and they can use this to specify the position of an object in a 3D cutscene. For utilising their own coordinate system the GPU has to convert all the objects to a common tracking system. At this time only simple operationslike scaling and rotation can be done. The output is a stream of billions of triangles.
Stage 3 : Lighting
Each triangle is placed in the Global coordinate system and now the GPU can calculate each triangle's colour on the basis of lights in the scene. Advanced lighting techniques like spectacular highlighting, diffusion and occluded lighting are also possible.
Stage 4 : Getting perspective
The next stage of the pipeline projects are the coloured triangles onto a virtual plane, as viewed from the users perspective. These coloured triangles and their respective coordinates are finally ready to turned into pixels.
Stage 5 : Rasterization
Rasterization is a process of converting a vertex representation into a pixel representation. Here the image from the vector graphics format is converted into a raster image consisting of dots and pixels. In this stage each pixel can be treated seprately and the GPU handles all the pixels in parallel.
Stage 6 : Texturing
While pixels are already coloured by this stage sometime additional textures may be needed for added realism. This is a cosmetic process similar to the makeup used by ramp models, in which the image is further draped in additional textures to add an additional layer of detail and beliviability.These textures are stored in the GPU's memory.
Stage 7 : Hidden Surfaces
In all 3D scenes,some objects are clear while some objects are obscurred by others. Its not simple as writing each pixel to memory.Gpu does a check to see wheather the pixel occupying that position is the closest to the user and it is sent to the monitor.