5
$\begingroup$

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?

$\endgroup$
6
  • $\begingroup$ This seems relevant: blender.stackexchange.com/questions/463/logging-renders $\endgroup$ Commented Feb 24, 2015 at 18:13
  • $\begingroup$ 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. $\endgroup$
    – J Sargent
    Commented Feb 24, 2015 at 18:14
  • 1
    $\begingroup$ 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.... $\endgroup$
    – rcgauer
    Commented Feb 24, 2015 at 18:16
  • $\begingroup$ 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. $\endgroup$
    – J Sargent
    Commented Feb 24, 2015 at 18:17
  • 1
    $\begingroup$ 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... $\endgroup$
    – rcgauer
    Commented Feb 24, 2015 at 18:18

1 Answer 1

7
$\begingroup$

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)
$\endgroup$
13
  • $\begingroup$ This is the right direction. But render_slot cannot take an int it needs a render slot type. $\endgroup$ Commented Feb 24, 2015 at 18:34
  • 2
    $\begingroup$ I don't know. Did you not test the code? $\endgroup$ Commented Feb 24, 2015 at 18:36
  • 1
    $\begingroup$ The script works for me! Renders and immediately hops into next slot. Very cool, and thank you! $\endgroup$
    – rcgauer
    Commented Feb 24, 2015 at 19:36
  • 1
    $\begingroup$ @Chebhou Actually, I forgot, you can do just ` bpy.data.images['Render Result'].render_slot %= 8 ` $\endgroup$ Commented Feb 24, 2015 at 20:13
  • 1
    $\begingroup$ Is it possible to change the slot before (at the same time) the render is launched, not after? $\endgroup$
    – Bithur
    Commented Feb 24, 2015 at 22:39

You must log in to answer this question.

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