file 3d ?>
( 3d on Ali's Homepage - www.alishomepage.com )
A few years ago (or, before the mid-90s to be more precise), our PCs could only calculate graphics comparable to the ones drown by the first humans on the walls of their caves. But, with the apparition of faster processors, everything changed: humans noticed that it could be very entertaining to play 3D games or to run 3D programs on their computers. So, Doom appeared. This game, like today's games, was creating for you a 3D illusion on a 2D surface. But there was a problem: in this 3D world, or the colors weren't like we wanted them to be like, or the detail level was low. When the details and the colors were better, the game was dramatically slowing down. So, hardware and software creators tried to find a solution. Intel did the faster and better Pentium processor. This processor's FPU power was enough for the 3D games. The Pentium 133 processor and Win95 became more and more popular. But those graphics weren't enough for us, the humans. We wanted to see graphics like on cinema. So, an idea was projected: integrating on the PC a processor that would do those calculations to have better and faster 3D. So, the processor only had to calculate polygons, and the 3D card was going to render (or paint) them. For a first standard, the API that was used on professional systems, OpenGL, was used. But what was professional was also expensive. Many cards got out, but none could be popular. Then, 3dfx came in. Those cards, if supported by the game, were putting on your screen some very beautiful graphics at a good speed. Its price was also good, so it could easily be popular. Then, came the attacks of nVidia, ATI, etc. And we came to our days, in which all the firms do 3D cards, to gain a little portion from this big cake.
How do they work? Not a miracle: you know that the 3D things you see on your monitor are only 3D skeletons "painted" with pictures. Normally, without a 3D card, the main processor was doing all the job, say creating the skeleton and painting it. Now, the processor only calculates the skeleton and sends to the 3D card. And then says: "paint this part of the skeleton with this picture, etc.". So, the main processor only takes care about creating skeletons, which is easier than creating it + painting it. So, games can use 3D cards for very beautiful and very fast graphics. But the idea in the beginning just had modifications during time: now, the latest standard is that the processor only calculates the points used to create the skeleton, then the 3D card creates the skeleton, paints it, and puts the special effects to it. And, just as the 3D cards are made just for that, they can do it better and faster than the ordinary main processors. But, as the main processor had to know to do everything and to do them at the same time, he wasn't a pro in all the things he can do.
The program also has to communicate with the card. That means the program has to know how to use the card, otherwise the card won't serve to anything. There are two ways for that: the first one is the hard one: you re-write the program for every 3D card, and so you must re-write the program for all the new cards. And the second way is that the program tells to another general program, which will tell to the 3D card what to do. The result is the same in the two cases, but the second is easier for the programmer. This general program is called API. The most popular 3 APIs are OpenGL, Direct3D (or DirectX) and 3dfx's Glide (there are 3 of them but Direct3D is *by far* the most popular one today). And this method also has another advantage: now the programmer doesn't re-make the program for the cards, but the cards are made so that they will be compatible to the API. This method is more practical for the user and the programmer. And the problems that are encountered are less. And that's why it's more used.
So, here we reached the end... It wasn't as complicated as it seemed, huh? But, if there are more things you are interested about, or you want some more info about this, don't hesitate to contact me!
Page read in 0.0012 seconds and sent using ZIP compression ?>