9

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?

Justin
  • 1,972
  • 4
  • 24
  • 43

2 Answers2

18

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 !

Polosson
  • 6,544
  • 8
  • 33
  • 61
6

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

Leon Cheung
  • 27,718
  • 11
  • 89
  • 161