Blender VS GTA

My PC is able to run GTA IV which has complex graphics scene (Lighting, water, humans, cars, other things). It means that the PC is capable of rendering 24 frames per second. Why does it take a relatively very very long time to render a single frame in Blender?

0.041 seconds to render a frame in GTA.
5 minutes to render a frame in Blender!

This is because the way a scene is rendered. Game engines are designed for real time graphics, as you will notice if you try playing around in Unreal Engine 4.

Blender renders an image by sending millions of light rays from the light source, each of these individual rays hit a surface, and based on the properties of that surface, it has to calculate weather or not it should be absorbed, bounce, refract, and in what direction it should bounce based on roughness. And this happens for every single sample you have.

Blender does however get a realtime rendering engine in the next 2.80 build which is a massive update. There you will be able to view rendered graphics in real time, just like in video games.


So basically, it seems that the reason is just a matter of optimization and taking the most out of GPU, right?

Anyway, I’m glad to hear about that massive update. I can’t wait to try blender 2.80.

Not quite. Engines cheat, a lot. Blender Cycles calculates everything as realistic as possible.

What FinalBarrage said. Game engines, like GTA, do a great deal of cheating. Some of which involves preprocessing that’s done before the game ships but which, for arbitrary scenes in Blender, need to be done as part of the render.

Take for instance bounced diffuse lighting (i.e. “global illumination”). In a game engine, they will preprocess the scene, precalculate light probes throughout the scene, and include that precalculated data in the loaded data. This preprocessing takes a long time to do, but the upside is, when you’re playing the game, that data doesn’t need to be calculated on the fly. Your standard, non-game, arbitrary scene render engine cannot do that. They have to calculate that lighting as part of the rendering process - so it takes longer.

FWIW, some advanced rendering engines allow you to save lighting information for use in later renders. Those render engines are still not going to be as fast as GTA though because they’re using it for rendering huge scenes at huge resolutions that require them to precalculate lighting in order to actually finish the images they’re spitting out.

An interesting discussion about one of those “cheating” methods is going on here.