Is it possible to render an image and have blender remember it, so that next time I open the file the render result will not be blank? I am not talking about saving to an external file. Specifically I would like to render an image, close blender, and come back later and be able to do some compositing on the render without having to waste a half an hour rendering it again (my GPU drivers are messed up so I have to use the CPU). Currently the render result is blank when ever I open a file.
2 Answers
No, Blender doesn't have this functionality.
Its possible to write an addon to do this, on-save it could save the render result to a Multi-Layer-EXR image, and on load it could check for that image, loading it if its available. (probably not all that hard to get basic functionality, but you will loose render slots).
An alternative which is admittedly little clumsy, you could use a file-output node in the compositor and save this in your user-defaults, so your renders are automatically saved. In the user default you could have an image view pointing to this file, so on-load it would read the last rendered image.
-
$\begingroup$ I am not familiar with EXR files, would it be able to have all data the render layers node does, i.e. z-depth, RGB values greater than 1, material pass indices, etc.? If so this would be extremely helpful. $\endgroup$– PGmathCommented Nov 18, 2014 at 0:23
-
$\begingroup$ Yes, multi-layer EXR's store passes & render-layers. $\endgroup$ Commented Nov 18, 2014 at 0:24
-
$\begingroup$ This sounds like what I am looking for, if you could explain how I would go about doing this that would be great! I have never done any scripting for Blender before and my Python is a bit rusty (I do do quite a bit of programming in other languages though). So if you could add some code to your answer it would be greatly appreciated. - Thanks! $\endgroup$– PGmathCommented Nov 18, 2014 at 0:30
-
$\begingroup$ For info on writing an addon, best you have a go, and if you run into troubles, ask a different question. (link to it from here is fine) $\endgroup$ Commented Nov 18, 2014 at 0:34
Yes, but it's a pain.
If you just need the image:
- Render your image
- save the image externally (this isn't the answer, just a step)
- open the saved image in in UV/Image editor (now separate image from your 'live' render)
- Pack all your images
- save your work
- you can now delete the external image, the packed version will travel with the blend, and be available the next time you open the file.
However, when you need to update the render, you need to unpack, update, and repack. So, it's just a pain.
If you need the individual render layers, then you should render to .exr as @ideasman42 suggests.
Edit: You can render the EXR, then pack it with the steps above. Same effect, the render will be stored in the blend, and available next time you open.