6
$\begingroup$

New to Blender, and reading the docs, I can't seem to get a good "real world" explanation of what a 'render' actually is:

  • Is a render a 2D image (sort of like snapping a photo of a 3D scene from a specific viewpoint/orientation/position), or is a render a full-bore 3D model?
  • Is the render an actual file (if so, what is its file extension, as opposed to the *.blend unrendered model file), or is it something that only lives in memory?
  • If Blender is used to create assets/models for use in games, I've heard of several game engines that have rendering capabilities. So, in the context of games, what's the typical flow: are assets rendered in Blender, and then saved & used by the game engines (already pre-rendered)? Or are the assets left as unrendered *.blend files, which then get used by the game engine, leaving the engine responsible for performing the render?
$\endgroup$
  • $\begingroup$ Some etymology might help, render comes form old french and means "to make", in the case of making images it means to shade the final image. So when a artist produces the final painted image he is rendering or making the image. So too in 3D graphics rendering is that act of shading (making) the image to screen/file. Wether its done in memory only or to a file deoends on the purpose your 3D graphics card does that all the time. All images are snapshots. $\endgroup$ – joojaa Feb 3 '17 at 9:34
11
$\begingroup$

A render is exactly as you say in your first bullet point; a render is a snapshot (or series of snapshots for animations) of the scene taken by the scene's camera, saved as either an image, a sequence of images or a video. The file format will be whichever format you save it in e.g. JPG or PNGs etc. for images or MP4 or MOV etc. for videos.

The process of creating this render is rendering, which is where the renderer - Blender Render, Cycles or an external render engine - calculates what colour each pixel should be based on how light is travelling through the 3D scene and interacting with the surfaces, materials and textures on the objects. This can be an intensive process, particularly for animations where a render has to be done for each frame of animation.

For a 3D game, game engines will need the 3D models and textures in a format it can read. Commonly, you would export your models from blender as 'FBX' or 'OBJ'. These files store the 3D models as a series of points (along with other data like bones, UV maps etc.). Textures would have to be provided separately and materials would have to be created using the game engine's own material editor as they are not compatible with Blender's own materials. To get around this you might create materials in Blender and Bake them to a texture, which is a way of rendering a material into a texture so that you can use it in the game engine (though baking has many restrictions which may mean that using the game engine's materials and lighting is preferable).

Game engines perform a 'live' rendering where for each frame (update) of the game engine the materials and lighting have to be re-calculated. Depending on the complexity of the materials and models this can be an intensive process which is why high end hardware may be needed for this 'live' rendering.

$\endgroup$
  • $\begingroup$ Thanks @Ray (+1) - awesome answer! Everything makes perfect sense, except for one item, due to my rookie stupidity: what's the difference between a material and a texture?! I thought they were one in the same! Thanks again! $\endgroup$ – smeeb Feb 2 '17 at 18:49
  • $\begingroup$ Also, if rendering a single frame can take 30 - 60 seconds in Blender (even using Cycles), then how are game engines able to render insanely complex 3D worlds, chock full of amazing graphics, all in real-time with (virtually) no lag? $\endgroup$ – smeeb Feb 2 '17 at 18:50
  • 3
    $\begingroup$ A material is every property of a surface which effects the render, reflectivity, specularity, bump etc. A texture is an image which can influence any of these properties. The most common type of texture is a texture which influences the diffuse (colour) of the material. Game engines tend to fake a lot of effects whereas render engines tend to aim for more physical correctness. However, there are probably people on a game stack exchange able to answer this better. $\endgroup$ – Ray Mairlot Feb 2 '17 at 19:03
  • $\begingroup$ As Ray said, game engines fake a lot of things. Many 3D rendering packages are physically-based, and aim to accurately recreate real-world effects by using complicated physics equations to model them. Game engines usually target something that "looks good" even though it may not be completely (or even remotely) accurate. Game engines also take advantage of techniques like pre-computation where possible, like the texture baking that @RayMairlot mentioned above. $\endgroup$ – A C Feb 2 '17 at 21:22
  • $\begingroup$ @smeeb For the rendering times: there are different ways of rendering. Google "rasterisation" (what games use) vs. "ray tracing", "radiosity", or "global illumination." $\endgroup$ – Reinstate Monica Feb 3 '17 at 7:56
3
$\begingroup$

The term "a render" is usually used to refer to an image produced by a "render engine" such as blender internal or cycles.

In the context of Blender, this is usually an image taken by a "virtual camera" of a virtual scene, from a specific vantage point and orientation etc.

However, one can also "render" other kinds of images, for example as in "baking" textures. Baked textures are image textures mapped to the surface of a 3D model containing stuff like lighting information, computed by the render engine.

Most game engines which display imagery on screen have rendering capabilities (generating images to display in real-time is "rendering" just as much as generating images in not-so-real time).
However tricks such as baking textures can be used to precompute some of the more complicated rendering with non-realtime render engines like cycles etc.

$\endgroup$
2
$\begingroup$
  • A render is a 2D image of a 3D scene from a specific point with a specific lens and sensor. Like a photo. The world is 3D but the photo is 2D. It can also be an animation (a video or a set of frames).
  • The render is an image or video file, so it can be JPG, PNG, AVI, etc...
  • A game can be partially rendered (you render some features of the materials, like reflection, etc...) or rendered in real time (the first is better because it takes time when you create the pre-rendering but then is faster.
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.