A couple of novice questions about GPU usage in UE4, so I may optimize my setup.
Coming from Blender I am accustomed to GPU handling the rendering. A good graphics card can make a big difference when rendering.
Of course making a game is different and to begin with, during development you have different roles than when actually playing the game (when plenty of info is pre-computed).
So the basic 2 questions, when I am developing my levels (for archviz):
- What computation is done by GPU and what by CPU?
What benefit and in what procedures, am I to expect by adding a good graphics card like a GTX780 to a system with a decent CPU but only an on board GPU?
Can I select what computations are done by CPU/GPU?
- In Blender I can have a GTX do calculations while the screen is driven by the other card, on board (so GTX is not connected to monitor at all). This means that interface remains robust while calculations are carried on. Does this serve a purpose in UE4?
In UE4 (and game engines in general) the graphics card will impact the real-time performance. The things that have the biggest impact will be stuff like post processing (anti-aliasing has a huge impact) and the size that the image is rendered. The CPU is used for the gameplay processing (things like AI) and stuff like physics. Outside of that, when you’re developing a game if you’re compiling code or you are building lighting then that is all done exclusively on the CPU and the GPU does nothing. More recently there are some systems like physics that can be accelerated using the GPU, for example in UE4 the particle system can use the GPU to push more particles.
It’ll be necessary to have a good GPU for working with the editor and testing the game, the CPU will be more useful for development so having a faster processor will help with building lighting. Having more RAM will help with building lighting as well since all geometry and textures have to be loaded into memory for that.
UE crowd simulations are a good example of GPU-side processing, but those kinds of processes have to be a dead end execution-wise because you can’t go from the GPU back to the CPU in the same frame, so it has to be things where the output is simple such as a mesh transform and not relied upon by anything other than itself. That means particles can (and are) done on the GPU and physics is not.
A decent revamp of the physics engine to be a completely asynchronous compute task would be really nice in the future though.
There’s also no reason why lightmass operations couldn’t become GPU compute operations and run a lot faster. I’m not convinced that there’ll be a third-party solution for this any time soon (if ever). Some of you know who I’m talking about.