9
$\begingroup$

Is it currently possible to specify which portion of an image you'd like to render in Cycles? Let's say I'm going to render an image with dimensions 1280x720. Can I render just the rectangle bounded by (640,0) and (1280, 360)? (The top-left and bottom-right corners of the rectangle, respectively)

This would be especially useful for Blender's Network Render addon if you only needed to render a single frame but had multiple computers at your disposal for rendering. I realize that a pseudo-solution exists in this question but the image stacking technique does not produce the same level of quality for the same number of samples. Others have also proposed a solution by using multiple cameras then stitching the results together, but this solution is also not ideal.

If there's currently no way to do this, could someone point me in the right direction for making this suggestion to the Blender developers?

| improve this question | | | | |
$\endgroup$
18
$\begingroup$

You can use border render, like explained in the wiki :

You can render just a portion of the view instead of rendering the entire frame. While in Camera View, enable Border and press CtrlB, then drag a rectangle to define the area you want to render. CtrlAltB is the shortcut to disable the border. Note that this disables the Save Buffers option in Performance and Full Sample option in Anti-Aliasing.

Enabling Crop will crop the rendered image to the Border size, instead of rendering a black region around it.

enter image description here

This answer goes further in explaining this feature.

If needed, you can set the border position with python, for instance :

bpy.data.scenes["Scene"].render.use_border = True      # Tell Blender to use border render
bpy.data.scenes["Scene"].render.border_max_y = 0.75    # Set the border top at 3/4 of the image's height
bpy.data.scenes["Scene"].render.border_min_y = 0.33    # Set the border bottom at 1/3 of the image's height
bpy.data.scenes["Scene"].render.border_min_x = 0.25    # Set the border left at 1/4 of the image's width
bpy.data.scenes["Scene"].render.border_max_x = 1.0     # Set the border right at the image's right border

And then, just hit render !

| improve this answer | | | | |
$\endgroup$
  • $\begingroup$ I have done that setting (checked both Border and Crop). F12 still renders the whole image. $\endgroup$ – Anders Lindén Aug 26 '17 at 5:44
6
$\begingroup$

Polosson's answer is quite right. I just want to make it more easier to understand particularly for your case, supposing you would have trouble to understand that.

enter image description here

| improve this answer | | | | |
$\endgroup$
  • $\begingroup$ Could I do this through the command line? $\endgroup$ – Justin Nov 13 '13 at 18:27
  • 1
    $\begingroup$ @Justin See blender.stackexchange.com/q/3082/599 $\endgroup$ – gandalf3 Nov 13 '13 at 20:49
  • $\begingroup$ @Justin gandalf3 showed a more comprehensive answer. :) $\endgroup$ – Leon Cheung Nov 14 '13 at 1:55
  • $\begingroup$ This is helpful. But when I save the image after the render is done, I get black border for the part I am not rendering. Is there a way to save just where gets rendered? $\endgroup$ – Sibbs Gambling Jul 3 '17 at 15:17
  • $\begingroup$ @SibbsGambling It is very strange. I never experienced such problem, can you share more information about your scene or setup? $\endgroup$ – Leon Cheung Jul 4 '17 at 0:57

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