4
$\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$
  • $\begingroup$ This seems relevant: blender.stackexchange.com/questions/463/logging-renders $\endgroup$ – Ray Mairlot Feb 24 '15 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$ – VRM Feb 24 '15 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 Feb 24 '15 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$ – VRM Feb 24 '15 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 Feb 24 '15 at 18:18
6
$\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$
  • $\begingroup$ This is the right direction. But render_slot cannot take an int it needs a render slot type. $\endgroup$ – Ray Mairlot Feb 24 '15 at 18:34
  • 2
    $\begingroup$ I don't know. Did you not test the code? $\endgroup$ – Ray Mairlot Feb 24 '15 at 18:36
  • 1
    $\begingroup$ The script works for me! Renders and immediately hops into next slot. Very cool, and thank you! $\endgroup$ – rcgauer Feb 24 '15 at 19:36
  • 1
    $\begingroup$ @Chebhou Actually, I forgot, you can do just ` bpy.data.images['Render Result'].render_slot %= 8 ` $\endgroup$ – someonewithpc Feb 24 '15 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 Feb 24 '15 at 22:39

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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