diff options
author | Campbell Barton <ideasman42@gmail.com> | 2017-10-06 13:25:33 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2017-10-06 13:25:33 +0300 |
commit | ea606a7847a316a82b365155f666b33e81ff4c2e (patch) | |
tree | d58158c83fd66000fbe9db0c45fa39b6fc02076e /release/scripts/modules | |
parent | d7d32ad45217736c677edd22906d980d03aeb175 (diff) | |
parent | 3df139c53062a141403ea9d359715ca3635c243c (diff) |
Merge branch 'master' into blender28
Diffstat (limited to 'release/scripts/modules')
-rw-r--r-- | release/scripts/modules/bl_previews_utils/bl_previews_render.py | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/release/scripts/modules/bl_previews_utils/bl_previews_render.py b/release/scripts/modules/bl_previews_utils/bl_previews_render.py index b4f0b8dd3b8..71208ef3485 100644 --- a/release/scripts/modules/bl_previews_utils/bl_previews_render.py +++ b/release/scripts/modules/bl_previews_utils/bl_previews_render.py @@ -278,7 +278,7 @@ def do_previews(do_objects, do_groups, do_scenes, do_data_intern): bbox[1].z = v.z def objects_bbox_calc(camera, objects, offset_matrix): - bbox = (Vector((1e9, 1e9, 1e9)), Vector((-1e9, -1e9, -1e9))) + bbox = (Vector((1e24, 1e24, 1e24)), Vector((-1e24, -1e24, -1e24))) for obname, libpath in objects: ob = bpy.data.objects[obname, libpath] object_bbox_merge(bbox, ob, camera, offset_matrix) @@ -305,6 +305,17 @@ def do_previews(do_objects, do_groups, do_scenes, do_data_intern): cos = objects_bbox_calc(camera, objects, offset_matrix) loc, ortho_scale = camera.camera_fit_coords(scene, cos) camera.location = loc + # Set camera clipping accordingly to computed bbox. + min_dist = 1e24 + max_dist = -1e24 + for co in zip(*(iter(cos),) * 3): + dist = (Vector(co) - loc).length + if dist < min_dist: + min_dist = dist + if dist > max_dist: + max_dist = dist + camera.data.clip_start = min_dist / 2 + camera.data.clip_end = max_dist * 2 if lamp: loc, ortho_scale = lamp.camera_fit_coords(scene, cos) lamp.location = loc |