I would like to pause a render that I have started, with the intention of resuming it at a later time (but during the same Blender session). How can I do this?

  • 2
    Are you talking about an animation, or a single picture? – Kyle Willey Jun 3 '13 at 5:05
  • @KyleWilley, mostly a single picture, although if I could get a method for an animation as well that would be nice. – fouric Jun 3 '13 at 16:50
  • 3
    Animations can be paused just by clicking the X on the render, then setting the start frame to the last completed frame. CharlesL wrote an answer that covers this. – Kyle Willey Jun 3 '13 at 18:28

10 Answers 10

up vote 47 down vote accepted

Blender Internal and Cycles lack such functionality (but we'd love to have that for Renderfarm.fi)

  • 1
    I'm not tech guy but if is used tile rendering there could be chance to resuming rendering from last finished tile theroretically – Utas Jun 3 '13 at 8:33
  • 2
    Yes, theoretically. But the functionality itself doesn't exist (as in pause and resume buttons, without further need for user interaction). – jesterKing Jun 3 '13 at 10:55
  • 2
    This could be implemented, hypothetically, by saving the data of the scene, then continuing with samples. AFAIK this could happen easily between samples by saving the image and the random seed parameters the raytracer uses. – hexafraction Jun 3 '13 at 14:12
  • 2
    @jesterKing, just a small note, avoid excessive self-promotion (not coming down on you, and I appreciate your work, but on SE self-promotion can be frowned upon). – A Wild RolandiXor Jun 24 '13 at 18:17
  • Doesn't Renderfarm.fi render at lower sample counts with various seeds? If so, could you stop after rendering the current seed, and then resume later? You would still have to wait for that seed to finish. – wchargin Aug 11 '13 at 20:48

There is a way to 'pause' Blender (or any software for that matter), but it relies on the operating system rather than Blender itself.

Mac OS X and Linux:

  1. You must have started Blender from the command line or terminal.
  2. At any time, you can completely suspend Blender by pressing Ctrl+Z from the terminal window.
  3. The terminal should say something like:

    ^Z [1]+ Stopped /Applications/blender.app/Contents/MacOS/blender

  4. You cannot interact with it until you you type fg in the terminal. Which will bring Blender back to the foreground.

Windows:

  • 2
    Great tip! I always used this to simply kill the application, can't believe this was there all along. – ideasman42 Jun 3 '13 at 17:04
  • 12
    Ah, if we go the OS way, then you can get the Process Explorer from technet.microsoft.com/en-us/sysinternals and suspend your Blender process using that. – jesterKing Jun 5 '13 at 5:58
  • 11
    There's no need to start Blender from the terminal. You can simply send the signals to the process. kill -s SIGSTOP $(pidof blender) to stop it and use -s SIGCONT to resume it. On KDE you can do this using the system activities(Ctrl+Esc). – Bakuriu Oct 20 '13 at 18:20

Pausing from the Operating System:

Linux

If you are on Linux (not tested on OSX)
you can send signals with these commands:

# To pause Blender:
killall -s STOP blender

# To start it again:
killall -s CONT blender

Some advantages to this are that it will work for any task, not just rendering, and that you do not have to start blender from a terminal.

Windows

You can use process explorer for this. See this question on StackOverflow.

Pausing from Blender:

Pausing F12 renders from Blender is not implemented yet, however it is on the Cycles Todo List.

  • I tested this on OS X and it seems that -s does something else, like simulates what would be done or something (see man killall). And omitting -s just causes Blender to be killed. I did have success with the method Mike Pan suggested though. – Mentalist Jun 16 '15 at 17:42
  • 1
    On Windows, you can use built-in functionality instead, with Resource Monitor > RMB menu > Suspend Process (from the same SO thread). – Mr Zak Aug 18 '15 at 12:30
  • 1
    On mac, you can use killall -STOP blender and killall -CONT blender – AMACB Sep 21 '16 at 1:18
  • On Linux (Ubuntu) you can also stop and resume a process: – cajhne May 12 '17 at 14:14
  • On Linux (Ubuntu) you can also stop and resume a process using System Monitor: Tap Super (windows) key once, and type "process" or "system", and choose the "System Monitor" icon. Then in the "Processes" tab right-click the blender entry and choose "Stop". When you want it to resume do the same thing, but choose "Continue". The command line is easier of course... but only if you can remember what to type. :) Sorry for double post. Can't edit a comment after 5 mins? What rubbish is that? ;P – cajhne May 12 '17 at 14:23

Mixing Smaller Renders

For a still image, a possible solution is to render less samples multiple times with the seed changed each time, and mix the images according to the samples. For example:

You have a scene which you would like to render at 3000 samples.

  • First night you render 1000 samples with seed 0.
  • Second night you render 1000 samples with seed 1.
  • Third night you render 500 samples with seed 2.
  • Fourth night you render 500 samples with seed 3.

The you take an image editor and put these images as layers:

  • First render: alpha 0.33
  • Second render: alpha 0.5
  • Third render: alpha 0.5
  • Fourth render: alpha 1.0

Each layer's alpha is: current samples / (all layers samples below + current samples)

5 samples:

5 samples

15 samples:

15 samples

Mixed image:

mixed image

Added Note

As mentioned in the comments: The resulted image may have a slight light-loss compared to the full sampled image, however will also have less noise. You get (almost, very near, way below significance) the same result as using Clamp Direct and Clamp Indirect with the number of samples of the individual renders. So this light-loss will be the same as if you were to set Clamping to 100 for example, which is usually very small. When the Clamp values are already set and lower than the samples, then no additional light-loss should occur.

We discussed this topic in the comment section of some old blog posts, it might be worth reading them:

https://sinmantyx.wordpress.com/2015/02/21/grave-of-the-blender-fireflies/

https://sinmantyx.wordpress.com/2015/03/18/perfect-clamp-1/

https://sinmantyx.wordpress.com/2015/03/18/perfect-clamp-2/

  • Does this give you exactly the same result as if you had used higher samples in the first place or just an approximation? – Steve May 9 '16 at 7:55
  • 1
    Short answere: Only an approximation. Longer one: You get (almost, very near, way below significance) the same result as using "clamp direct" and "clamp idirect" with the number of samples of the individual renders (if these values are already set and lower, then no difference). So the light loss will be the same as if you would set claming to 100 for example. – Róbert László Páli May 10 '16 at 21:29
  • If you are more interested, look at the end of my edit. – Róbert László Páli May 10 '16 at 21:30

For one frame you could try to use border select then render. You could render parts of your image you need and mix the layers later in GIMP. I use it whenever I add details to a model and don't want to render the whole scene again.

  • 2
    You certainly can break up a render into parts this way (on Renderfarm.fi we use this to split workload between nodes), but it is quite a labour intensive way to do things if you don't have a good automation behind it (Renderfarm.fi has a Tomcat7 servlet running doing all this delegation and stitching). You can add that for Cycles you could render in batches of ie. 10 or 50 samples, and then average the results all into one (which I implemented on Renderfarm.fi as well ;) Just take care that each batch is rendered with a different seeds – jesterKing Jun 3 '13 at 10:54
  • A python script to do stuff like this would be awesome. (I think i'm going to try and learn python now) but to able to define different numbers of samples for different parts of the render... :D – gandalf3 Jun 15 '13 at 15:08

You can pause viewport rendering in Cycles (but not 'Render' menu rendering) by pressing the pause button in the bottom right-hand corner of the 3D view.

enter image description here

If you're rendering an animation, render out the frames individually as PNGs first. If do so, you can stop rendering a frame and come back to render the rest later without any corruption. Once you want the animation as a video file, load the PNGs as an image strip in Blender's video editor and render the video out(it will be really fast because it's just sticking the images together).

  • 1
    Will this just stick the PNGs together into a movie without doing any compression, or will it compress them using the methods of whatever format you are using (Theora, MPEG, etc)? – fouric Jun 3 '13 at 16:48
  • 2
    It'll be compressed using whichever format you decide to use. – CharlesL Jun 3 '13 at 17:14

For animations that output to a sequence of individual image files an important checkbox is the Overwrite checkbox in the Output subtab of the Render tab of the Properties window. It defaults to checked. If you uncheck that box you can interrupt a render, shut down your laptop, turn it back on, and click the render animation button and it will not overwrite the frames that have already been stored to the directory, instead starting calculations at the first missing frame.

A drawback is that if you change the scene and want to discard the rendered frames containing stale data, you have to delete them from the directory some other way (using windows explorer, or linux rm)

Another drawback is that blender's default output directory is /tmp, which some flavors of linux wipe clean every time you reboot the computer. I use /var/tmp/blender/projectname/ instead.

  • you can also manually set the start frame to the frame after the last one which was rendered in the previous session when you resume the render, then you don't need to uncheck the overwrite button – Steve May 9 '16 at 7:58

there is a very fast and easier way , Just set the start frame, then the end frame , and when you want to pause it , just change the end frame to the one currently rendering and then set the start frame to the last frame you render , and repeat.

enter image description here

  • 5
    No real need to do this when rendering image sequences. To keep the frames you already rendered you just need to uncheck the "Overwrite" box on the output section. All existing rendered files will be kept and rendering will start on the first unrendered frame. – cegaton Jan 18 '16 at 21:19

I have been working on a solution, it's a workaround that uses Windows suspend thread function in c++ to pause/unpause blender, but it also minimizes blender in the taskbar in a tray icon, because windows will throw out "Blender has stopped working" if you suspend it and the window still maxmized, it supports Windows 64bit and blender 2.79 https://gum.co/bpupp , support for other platforms coming soon

protected by iKlsR Jun 13 '13 at 12:15

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

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