9
$\begingroup$

I have a scene of an office. It has chairs, tables, computers, and so on.

I would like to know how I can render this scene faster as I am planning to make animation inside the office and don't want the render to take forever.

I know of sampling, resolution and most things in render settings. I have also heard of render passes or rendering using layers.

$\endgroup$

4 Answers 4

15
$\begingroup$

As one might expect, you can't just "render faster" for the most part, there are really no shortcuts or magical tricks. You can optimize your scene, tweak settings, and adjust parameters. While these can under certain situations make a significant difference, they will most often lead to marginal speed-ups compared to the total duration of the rendering process. These can add up frame upon frame when rendering long animations, yielding more significant benefits though, but don't expect miracles.

Rendering is by definition slow. It takes time, a lot of time and resources, rendering animations even more so; so be prepared to wait.

As a wise man once said

Match your expectations to your hardware, or match your hardware to your expectations.

Time is money, if your are serious about rendering, if work depends on it, if you are making money from it, or you are interested enough in your hobby invest in better hardware. If you can't front the cash or prefer not to own it, rent computing power (a render farm, web services etc.). Otherwise you pay with your time, by waiting.

Final rendering speed is mostly a sum of variables like the processing capabilities of the infrastructure (computer, farm, available devices, among others), available resources (how busy your computer is, available memory), performance level (faster components, higher end hardware), desired level of quality and scene complexity. Faster renders always come at a cost of one of these, you either sacrifice image quality, artistic quality, or money.

That being said, for Cycles (and path tracing in general), there are a few setups that are slightly faster to calculate, and additionally there are numerous ways you can optimize your scene so it generates less noise. With less noise you require less samples to achieve the same level of quality, hence taking less time to calculate, which may result in faster rendering.

Rendering Settings

The most obvious ones are technical settings that lower objective image quality you can sacrifice in the name of speed. Things like lowering sample counts, shrinking image size, reducing number of light bounces, rendering at a slower frame rates, which all come at a cost of objective digital quality.

Also make sure you are using the correct devices (available GPUs, connected farms, etc), they are correctly setup and actually being used. Use an adequate amount of samples and quality settings for your scene and desired goal.

3D Scene Setup

Others are more nuanced and come at a more subjective cost of "artistic" image quality.

Rendering with Path Tracers like Cycles, is vaguely akin to target practice, where you have to hit a bunch of targets with a limited number of arrows. For the rendering metaphor, light sources would be the targets to hit, where the "rays" (from the Raytracing namesake) would be the shot arrows that have to hit the light targets. These are fired from your camera, and travel through your scene ricochetting around multiple surfaces until they hit a light source like a lamp object, the environment sky, or an emitting surface. Arrows are scarce and expensive, for the computer each ray shot and each surface it ricochets on cost a lot of processing power and accurately predicting the trajectory to hit a target is very hard.

For the sake of this answer I'll try to stick to this target practice metaphor for the examples.

Generally speaking Cycles likes big and easy to find light sources (targets). Smaller, harder to reach or hidden lamps that are "hard to hit" produce noisier output that needs more samples and takes longer to render. Things to avoid:

  • Lights
    • Very small light sources (spots, point lights or area lights with a small size or Radius property)
    • "Hidden" lamps, occluded behind objects, in crevices, holes, or contributing indirect light to a scene
    • Lights behind or inside glass objects or refractive surfaces whose light contribution to the scene is distorted causing caustics (scattered by refraction). Using the previous target practice analogy these are crosswinds bending the path of the arrows and making their trajectories harder to predict.
    • Very high number of lamp objects. In target practice analogy the equivalent of having too many "targets" to hit with few arrows and a limited number of shots. Many light source objects may cause increased noise and require higher samples because more rays are needed to hit them all uniformly (Equivalent of requiring more arrows to hit more targets). This has been ameliorated in recent versions of Blender 3.6+.
  • Geometry
    • Very highly subdivided meshes
    • Mesh with Subdiv modifiers with adequate subdivisions for the viewport display but very high Render Subdivisions value. This may also cause very long BVH trees building times ("syncing" time before actual render starts).
    • Hidden or secondary objects with unnecessarily high quality meshes (Generally speaking keep subdivisions and mesh density to the absolute minimum required for the desired quality, proportional to the objects importance in the overall scene, its visibility and its proximity).
    • Very dense meshes with poor topology, resulting from sculpting, 3D scans or importing from CAD software.
  • Shaders and materials
    • Very complex materials or long shaders trees
    • Unnecessarily large image textures sizes
    • Disproportionate texture size and scene protagonism relationship, that is using very large textures for small, distant, or otherwise secondary objects with little visibility
    • Abusing the number of individual image texture files
    • Lots of glossy materials and reflections (which cause fireflies)
    • Abusing bump maps
    • Small or numerous objects with emission shaders or illumination (hard to hit targets)
    • Volumetric effects, like translucency, sub-surface scattering, volume materials, fog, fire, smoke, etc.

Hardware

  • Slow or low end processors (for CPU rendering)
  • Slow or low end GPUs (for GPU accelerated rendering)
  • Low amounts of system memory, like RAM or Video Memory, especially if insufficient to fit the whole scene. Having more RAM doesn't make your renders faster, but working close to the limit may lead to filling available memory, which causes "swapping" (the Operating system moves excess data to storage devices like Hard Drives) which are considerably slower, hampering rendering at best, or completely failing at worse.

Resources

  • Keeping the computer busy with other tasks while rendering. Especially heavy tasks like gaming, video encoding, dealing with archives files (zip) or other demanding tasks.
  • Warm environments, poor cooling or insufficient ventilation. Hot computers tend throttle performance to prevent hardware damage when they heat up, slowing things down without warning. Laptops due to their size constraints are particularly prone.

Other tips

Try searching the internet for "Reduce Cycles noise" or "Optimize Cycles render" and you will find plenty of tips about it like the ones bellow as an example:

Modern versions of Blender also have multiple built-in options for denoising renders. Denoising is not a miracle tool that solves all problems, if used incorrectly can cause blurry images, splotches, artifacts or pastel like effects, but if used properly can help reduce the needed amount of samples save some rendering time. See:

$\endgroup$
4
  • $\begingroup$ How about moving some objects/mesh toa different layer, and rendering each one separately and thrn compositing them together with a node later? Will that not make things faster or is it the same? $\endgroup$ May 14, 2016 at 10:10
  • $\begingroup$ Never tried that myself, but as far as I know each layer will render faster but overall both together would take longer than just a single render, I think. Plus composting time on top of that. Separating layers is generally done for the purpose of composting or memory management, since each layer could potentially require less memory than the full scene, not for increased speed $\endgroup$ May 14, 2016 at 12:52
  • $\begingroup$ Hi :). Since this answer doesn't mention denoising, it might be useful to link this one: Type of Denoiser built into Blender $\endgroup$ May 16, 2021 at 11:21
  • 1
    $\begingroup$ @JachymMichal Good point, added. Thanks $\endgroup$ May 16, 2021 at 14:17
1
$\begingroup$

You could try baking your textures. By baking your textures you get cycles to render one high quality texture and use it with one sample in the final animation. One limit is you will want to use a static light source. See the results of this blenderguru tutorial.

Depending on how you want to animate, you could render one static image (or several from different angles) of the office, then render an animation of just the characters moving and composite them onto the static image/s. The render of only the characters will be very fast in the transparent areas around the characters - 70-80% of the image?

You can even combine the two ideas. Use the baked scene to quickly render a fly through animation of the office and then use it like a live video and composite the character animation over the top. Rendering the two separately allows you to render shadows with the characters and composite them onto the background. You can find several questions here about shadow only rendering and compositing.

$\endgroup$
0
$\begingroup$

First off, BlenderGuru has some good tips in his 4 Easy Ways to Speed Up Blender Cycles article. The tile size mod is especially effective. In addition, if you make the edits in 7 Ways to Get Rid of Fireflies In a Blender Render, you will be able to drastically reduce the render samples (speeds up render).

$\endgroup$
0
$\begingroup$

Turning up exposure can help along with lowering light passes but it will depend on what results you are after

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .