I try to split render process (by python script) to several tiles and after finishing render process, join sub-results into one image. I set use_borders to True and I set min_x, min_y, max_x, max_y:

bpy.context.scene.render.use_border = True
bpy.context.scene.render.use_crop_to_border = True
bpy.context.scene.image_settings.file_format = 'PNG'
bpy.context.scene.image_settings.color_mode ='RGBA'

bpy.context.scene.border_min_x = computed_min_x_for_tile
bpy.context.scene.border_min_y = computed_min_y_for_tile
bpy.context.scene.border_max_x = computed_max_x_for_tile
bpy.context.scene.border_max_y = computed_max_y_for_tile

But ... I get slightly different image than I expected. I rendered the same scene in Blender GUI and via python script (splitting into tiles). Outputs are different. You can see tiles borders - in image generated by python script.

I tried to set another properties (before render process), for example:

bpy.context.scene.render.use_compositing = True
bpy.context.scene.render.use_save_buffers = True
bpy.context.scene.render.use_full_sample = True
bpy.context.scene.render.use_render_cache = True
bpy.context.scene.render.dither_intensity = 1.5

No one helped.

Do you have any idea how to reach the same outputs ? What property should I set or what sequence of steps should I do ?

Image rendered in Blender GUI: Image rendered in Blender GUI

Image rendered by python script (split, render, join): Image rendered by python script (split, render, join)

  • $\begingroup$ Do you use a denoiser? 🤔 $\endgroup$ Mar 31 '21 at 9:33
  • 1
    $\begingroup$ Markus von Broady, as you can see, it was demo file - classroom. It uses many nodes in compositor - there are several Blur nodes. I implement steps I described below and they work. I have correct output now. $\endgroup$ Apr 1 '21 at 14:27

It is caused (probably) by compositor. If I render part of image, compositor change only this one piece (tile) - without affecting another tiles. After joining them, seams can be seen.

To reduce seams I will render scene by scene (without using compositor - I will set bpy.context.scene.render.use_compositing = False), tile by tile (saved to erx-multilayer format) and then join outputs. Then I will change inputs in compositor (render layers will be replaced by images). I hope it will work.

  • $\begingroup$ Do you happen to have the python script for this working solution? $\endgroup$
    – Z T
    Oct 18 '21 at 1:41

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.