Is there a simple way to log/save every render that you make in a Blender scene? Maybe an add-on? This would be helpful to visually see progress on modeling, materials, lighting, and whatnot. It would also be helpful if it could "print on" the date/time, vertex count, and the camera settings. Am I just dreaming or is there a way to do this?
3 Answers
You can have Blender automatically save files if you check the Auto Save checkbox in the render settings.

Renders will automatically be saved to *blendfile location*/auto_save/. If you check subfolders renders will be saved to: *blendfile location*/auto_save/*blendfile name*/(useful if you have multiple .blend files saved in the same directory)
Since it uses the location of the .blend file as a base, you must save your file before this feature can work.
It is an addon, so make sure to enable it in the settings:

- 8,064
- 2
- 18
- 35
- 15,316
- 7
- 53
- 88
-
I'm using 2.67a, and the setting doesn't exist, even on saved file. Is it an addon? – Adhi May 30 '13 at 13:20
-
@Adhi it is. I added that just added that to the answer. – CharlesL May 30 '13 at 13:30
-
1Wow, I need to check out the installed addons more. Its support level is Testing, filtered off by default in my install. Thanks for pointing that one out :) – Adhi May 30 '13 at 13:48
-
1@Gwenn: It wasn't included in 2.66a. In fact, not a single addon with support level Testing is included before 2.67 IIRC (it's there by the heapload in 2.67a). – Adhi May 31 '13 at 00:00
-
@Adhi I can't find it in 2.67a. Even with "testing" checked. – Daniel Jun 02 '13 at 16:30
-
Testing addons are never in releases, they need to be approved first. - Contact bf-python mailing list to suggest inclusion. – ideasman42 Jun 02 '13 at 17:17
-
I don't know Blender's policy about this, but I downloaded blender-2.67a-linux-glibc211-i686.tar.bz2 fresh off download.blender.org and there they are in scripts/addons_contrib. All 4.2MBs of it, including render_auto_save.py. Maybe something went wrong with 32bit Linux release? – Adhi Jun 02 '13 at 20:07
-
I've just downloaded 2.67b, and addons_contrib is no longer included. So it's not supposed to be there in the first place... :D – Adhi Jun 02 '13 at 23:20
The closest thing to logging a render in Blender is to render to different slots. Each slot can store a different render for comparisons etc. In the Image Editor, there is a popup menu in the header that has 8 different slots that you can render to. Before rendering, choose a slot. ( You can also quickly cycle through these by using AltJ for the previous render slot and J for next render slot.)

As for the second part, there is a Stamp pane in the Render tab that you can use to attach the date, time and render time etc to your render.

- 43,379
- 12
- 156
- 189
-
stamp is acceptable, but unfortunately not a greatly customizable feature at the moment :/ – zeffii May 30 '13 at 08:20
-
3@zeffii, stamp options are written into metadata of EXR/JPEG/PNG files. So if you dont want to see them, you can use a tool to read them back (exrheader command for openexr for example). – ideasman42 May 30 '13 at 11:45
-
@ideasman42 It gets written to the metadata? Then why is there text color and background options? – Daniel Jun 02 '13 at 16:38
-
2@Dan the Man, because
Stampbutton is pressed, if its not, the metadata still gets written to the file. – ideasman42 Jun 02 '13 at 17:15 -
@ideasman42 So
Stampprints it on to the image, but by default it already gets written to the file? – Daniel Jun 02 '13 at 17:48 -
1
-
1@ideasman42 - In what metadata format does Blender store Stamp info in PNGs? I'm struggling to find the RenderTime value with ExifTool – futurehack Jan 14 '15 at 20:14
-
1http://blender.stackexchange.com/a/2653/55 - checked and the metadata is stored and readable. – ideasman42 Jan 14 '15 at 21:14
-
Thanks, I have now found the metadata. For posterity, the process appears to be enable Stamp -> Select tags -> Disable Stamp - > Find metadata info now in PNG header – futurehack Jan 14 '15 at 21:41
I had a similar need before and I did a test. By making use of the handlers (bpy.app.handlers), once can define render_pre, render_post, render_complete callbacks on render (bpy.app.handlers.render_pre.append(preRenderFunc), etc.,).
import bpy
from bpy.app.handlers import persistent
@persistent
def PostLoadSession(self):
print("post load")
scene = bpy.context.scene
srrid = 'srrid'
if srrid not in scene or not scene[srrid]:
print("Nothing was rendered previously")
else:
print('Last image rendered was {0}.{1}.png'.format('RenderResult' ,scene[srrid]))
bpy.app.handlers.load_post.append(PostLoadSession)
@persistent
def PreRender(self):
print("pre render")
scene = bpy.context.scene
srrid = 'srrid'
if srrid not in scene:
print('This is the first time you are rendering from this file')
scene[srrid] = 0
print('Created {0}'.format(srrid))
bpy.app.handlers.render_pre.append(PreRender)
@persistent
def PostRender(self):
print("post render")
scene = bpy.context.scene
srrid = 'srrid'
if srrid not in scene:
print('PreRender was not called')
else:
scene[srrid] += 1
print('Saved render result as {0}.{1}.png'.format('RenderResult', scene[srrid]))
bpy.app.handlers.render_complete.append(PostRender)
You can find more details on my blog post.
http://learningblender3dsoftware.blogspot.in/2012/10/messing-around-with-prepost-handlers.html
The code available on my blog does not actually save the images yet, but it can be easily achievable. I am actually in the process of creating an add-on that saves the images. I hope to release a beta version soon.
- 8,064
- 2
- 18
- 35