3-D video cards appear so natural to the modern computer users and especially to those heavily relying on the technology, for example to gamers. Yet, the roots of this essential element of computers are not thus known to the regular computer users and many of us are not aware of the importance of APIs. If you are curious about this technology, you are in the right place.
Why do we need 3-D video cards in the first place?
None of the CPU from the mid-1990s could ever hope to handle the massive processes required to render the 3-D worlds. To render such realistic movements, the 3-D world needs to be refreshed minimum 24 times per second, which means the total process, from the transformation to texturing, must repeat once every 1/24th of second.
On top of that, that is not all there is in gaming. There are various other aspects of keeping track of the score, timer, tracking and positioning of the objects in the game, movements and lot! Something was needed so bad to take the heavy load off the CPU and hence came the video cards as a response.
Application Programming Interface
All the video cards were developed with an on-board GPUs. The GPU took off the load from CPU, initially some and eventually all of the rendering process. All these video cards did not come in with a GPU but massive amount of RAM as well. Things would be much better if we could talk to these cards other than just the driver, meaning sending command to these cards, like “Do this”, “Do that” etc.
With this set of concept video card instructions were standardized into a series of Application Programming Interface (APIs). API is basically a library of commands that game developers use in their programs to issue generic commands which the device drivers of various different video cards understand. Device drivers for each of these card translate the API commands into set instructions that the hardware of the card understand and then send down to the graphics hardware.
There are several API has been developed over the years, the most prominent of them are OpenGL and DirectX. OpenGL was developed for UNIX-based systems but later on became multi-platform. As the whole idea of 3-D started growing more and more demanding, Microsoft stepped right in with their DirectX API.
Even though all of these API accomplish these tasks in their own standard ways and overhead efficiency, the difference is hardly noticeable.