In my script I get the dimensions of the region_3d, then set them in the render properties and create a camera (and render). However the camera created has the aspect of the region but doesn’t capture it completely (cropping the render).
Is there any simple way of doing this?
import bpy
sel = bpy.context.selected_objects
for window in bpy.context.window_manager.windows:
screen = window.screen
for area in screen.areas:
if area.type == 'VIEW_3D':
awidth = area.width
aheight = area.height
override = {'window': window, 'screen': screen, 'area': area}
bpy.ops.object.camera_add(override, view_align=True)
cam = bpy.context.selected_objects
bpy.ops.view3d.camera_to_view(override)
save_resx = bpy.data.scenes['Scene'].render.resolution_x
save_resy = bpy.data.scenes['Scene'].render.resolution_y
save_file = bpy.data.scenes['Scene'].render.filepath
bpy.data.scenes['Scene'].render.resolution_x = awidth
bpy.data.scenes['Scene'].render.resolution_y = aheight
bpy.data.scenes['Scene'].render.filepath = '/Users/xxx/Documents/image.jpg'
bpy.ops.render.render( write_still=True, use_viewport=True)
bpy.data.scenes['Scene'].render.resolution_x = save_resx
bpy.data.scenes['Scene'].render.resolution_y = save_resy
bpy.data.scenes['Scene'].render.filepath = save_file
bpy.ops.object.delete(use_global=True)
break