Why are games rendered with a GPU while Blender, Cinebench and other programs use the CPU to render high quality 3d imagery? Why do some start rendering in the center and go outwards (e.g. Cinebench, Blender) and others first make a crappy image and then refine it (vRay Benchmark)?

1.01K views

Why are games rendered with a GPU while Blender, Cinebench and other programs use the CPU to render high quality 3d imagery? Why do some start rendering in the center and go outwards (e.g. Cinebench, Blender) and others first make a crappy image and then refine it (vRay Benchmark)?

In: Technology

17 Answers

Anonymous 0 Comments

OMFG this is eli5, not eli25.

GPU- quantity

CPU- quality

Does this really have to be so complex? lol

Anonymous 0 Comments

There are technical reasons as others have mentioned, but I can’t help but think that it is at least partly because programming on the GPU is much more of a pain than a CPU. Even getting GPU drivers on Linux that perform well is an exercise in frustration.

The tooling for GPU programming is much worse than the plethora of debuggers, profilers, etc. available for traditional programming.

Anonymous 0 Comments

This is something I actually have quite a bit of experience with and I disagree with a lot of answers. Normally, you want to let the CPU do all the graphics unless you absolutely require GPU acceleration because the CPU can’t keep up. When working with a GPU, you have to convert your textures, matrices, and vectors into a format that the GPU can work with before it can access that data. The CPU has access to everything loaded into memory already so very little prep work is required before painting into your screen when using the CPU.

I have no idea why people thing GPU = inaccurate math. It’s all up to the programmer and how they code the program to work. I can select lower resolution textures and different scaling methods (fast vs high quality) regardless of what method I’m using to actually render the scene.

As far as what order things get rendered visually, that’s up to the programmer too. I’ll only start painting lower quality / partially complete renderings if the user needs some kind of feedback that things are working as intended before the full rendering has finished. You can pick and choose what gets rendered first and the selections are based on what the product and engineering teams have determined are the most important for the end user.

Anonymous 0 Comments

And now, a thread with 60,000 different nine-paragraph wrong answers, 59,000 of which start with the word “Actually.”

Anonymous 0 Comments

…Blender (cycles and Eevee) does use GPU….

What are you on about?

Anonymous 0 Comments

When images are rendered using the CPU that’s called a software renderer as opposed to a hardware renderer of a GPU, for the most part, GPUs can render images more efficiently than CPUs can, the reason that those benchmarks use software renderers are because a software renderer is very taxing on the CPU and those programs are benchmarks/stress tests.

Anonymous 0 Comments

~~Blender~~ Cycles can be configured to render from the center outwards, or from a side to the other side, and in many other patterns. It also can be configured to render a “crappy first image then refine it”, and that is called progressive rendering.

Cycles can utilize either the CPU or GPU for the task. Rendering with the GPU is usually much faster, but either partially does or doesn’t support some effects.

Anonymous 0 Comments

Can you ask this question like I’m five?

Anonymous 0 Comments

Blender does use GPU to speed up its Cycles rendering engine. Larger scenes may cap out the Vram on the GPU so you may have to use CPU for rendering.

Anonymous 0 Comments

Almost every 3D software has its own rendering engine that’s different from others by the kinds of calculations it does in order to produce an image.

– Videogame engines are optimized to do rendering in real-time, and GPUs are in turn optimized to help them achieve that. Making the quality as good as possible while being able to render 30/60/240 frames per second. Videogames do *a lot* of shortcuts and clever tricks do make the image look great with minimal computing. Like normal maps, baking in lighting, a plethora of shaders, lots of post-processing, etc.

– Professional 3D rendering engines are optimized for quality and realism. As in, putting an actual light in the scene, and calculating how the rays will bounce off the objects and into the camera. Those kinds of calculations take more time, but produce much better results and are more flexible.

But when it’s all said and done, the rendering calculations themselves can be processed by the CPU or GPU cores, depending on which will do the task faster/cheaper/more energy efficient with the software in question.

You can try it for yourself with Blender. Take any scene, and render it out using Cycles renderer. First using a GPU and then a CPU to see how they’ll perform. A GPU will render one sector at a time, but very fast, whereas a CPU will render multiple sectors at once (with each of its physical cores), but each sector will take longer to render.

But that’s an ELI5 version, 3D rendering is one of the most mathematically complex subjects in computer science and I’m too uneducated to dive into more details.