what is CPU used for in graphics?



"The thing is, the program itself has to rely on the processor for a few things. Calculations for some, if not all the physics involved for interaction. For instance, Collision detection of objects. What people fail to understand is that what you see on the screen, the GPU handles the rendering of what you see, but you still have to do basic physic calculations for when you do object collisions.

PhysX is suppose to do SOME of that, but that generally is for the 'realistic' looks, such as water ripples, reflections, and lighting parts for the most part, some of the collision detection, but not all games make use of nVidia's PhysX as it is part software, part hardware. nVidia makes use of their cards to make the software run more efficiently, but if you don't have the hardware, it will use the Software and CPU power to approximate it.

The CPU is also going to be responsible for doing the following in games:

1) Tracking Objects - calculations of mobile objects in the game, such as NPCs.
2) Hit detections - Along with those tracking, in offensive games, needs to approximate where some things will be hitting or if they will be hitting. With large data sets, such as multiple NPCs and yourself firing or doing actions, each action has to be taken into consideration and the resultant data.
3) AIs - The game AIs, ranging from the NPCs to just the simple "door handling" has to be processed based on actions and also program responses to situations. AIs use State mannerisms and timing.
4) Sound Processing - Regardless of the sound card, you still have a software converting a file's digital data to output back out into sound. There are different data formats, and even in game cutscenes, you are no longer using CD/DVD analog tracks, you are now using pure digital data files to output sounds, including background music and ambient sounds.
5) For Net Play - there is still going to be large data sets of information doing the above and passing back and forth as well as communicating to other machines, which puts even more of a burden on your system as it has to crunch some of that data and represent it to you and also respond back to that data and send it back out to the other machines.

Take, for example, World of Warcraft...

While the server is going to try and keep track of where you are, and also the NPCs, your computer has to do the following:

1) Judge, based on your settings, what the GPU should be rendering.
2) Playing audio, if you have it enabled, for the various things you allow it to play, ranging from Background music, ambient sounds, error sounds, basic sounds, spell sounds and so forth.
3) Send data to the server, as well as to other players about you when you are in the general vicinity of said players. In Raids, it will be sending updated data for players to respond to for healing and positioning of npcs. A good example of fubaring a computer - Onyxia Raid to do the "Many Whelps" achievement. You have to make the encounter spawn a crapton of dragon whelps and kill them. Well, imagine having to do that with 24 other people, with 50 or so things going at once. Well, I can tell you, most people have their system grind to a halt because of the data of 24 other people and 50+ things going at once will cap processors to the point of "Data isn't flowing, dropping player." process. It happens, a lot.

And what more, you also have to consider that every game, every program is coded based on an operating system and code process that it has to follow. The more complex the program, with more features, the more processing power will be needed. The higher settings require some more processing as it adds more levels of complexity to make the game experience even better." -Keiichi25