5

Is it possible to require each new F12 render to appear in a new render slot thereby not overwriting the one I wanted to compare it against?

David
  • 49,291
  • 38
  • 159
  • 317
rcgauer
  • 2,247
  • 1
  • 15
  • 27
  • This seems relevant: http://blender.stackexchange.com/questions/463/logging-renders – Ray Mairlot Feb 24 '15 at 18:13
  • All you need to do is change which render slot you have selected, is there any reason you need to automate this? Pressing F12 and changing features is more time-consuming. – J Sargent Feb 24 '15 at 18:14
  • 1
    Well... if I am working in Object mode and making changes, I frequently hit F12 to see the results. If I remembered to move to the next open slot in the UV/Image view before doing so, the render appears inthe next slot. If not, the render is displayed in the slot in which the prior render is holding, overwriting it.... – rcgauer Feb 24 '15 at 18:16
  • I see, you want to default to the next empty slot. That will take some scripting, which is out of my department :/ I wish you luck, I really would like that feature as well. – J Sargent Feb 24 '15 at 18:17
  • 1
    In a completely ideal new-feature world, I would love for the render Slots to be associated with the settings used to create each render... so I could make a render into Slot 1, make changes and render into Slot 2, and then move all settings back to the Slot 1 condition.... But at the moment I am just trying to render into the next open slot... – rcgauer Feb 24 '15 at 18:18
  • While not automatic there is keyboard navigation of the slots - 1-8 will take you to a specific slot. That's only one extra keypress before F12. – sambler Feb 25 '15 at 13:38

1 Answers1

7

here is a script that switch the render slot automatically after each render
-This is for blender 2.72 and earlier versions :

import bpy
from bpy.app.handlers import persistent

@persistent
def PostRender(self):
        bpy.data.images['Render Result'].render_slot += 1
        bpy.data.images['Render Result'].render_slot %= 7

bpy.app.handlers.render_complete.append(PostRender)

paste and run inside blender


as Ray Mairlot noted the changes in blender 2.73 and later versions require replacing render_slot with render_slots.active_index as follows :

import bpy
from bpy.app.handlers import persistent

@persistent
def PostRender(self):
        bpy.data.images['Render Result'].render_slots.active_index += 1
        bpy.data.images['Render Result'].render_slots.active_index %= 7

bpy.app.handlers.render_complete.append(PostRender)
Chebhou
  • 19,533
  • 51
  • 98