From 441c7fb79a83b7d6f9e86cd2a3b0c8eaeec6d07c Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 6 Feb 2013 02:48:03 +0000 Subject: fix for crashes running some operators in background mode and some divide by zero errors. --- source/blender/render/intern/source/rayshade.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'source/blender/render') diff --git a/source/blender/render/intern/source/rayshade.c b/source/blender/render/intern/source/rayshade.c index bef5902588c..fe23f31c6d7 100644 --- a/source/blender/render/intern/source/rayshade.c +++ b/source/blender/render/intern/source/rayshade.c @@ -433,14 +433,18 @@ void makeraytree(Render *re) * This is ONLY needed to kept a bogus behavior of SUN and HEMI lights */ INIT_MINMAX(min, max); RE_rayobject_merge_bb(re->raytree, min, max); + if (min[0] > max[0]) { /* empty raytree */ + zero_v3(min); + zero_v3(max); + } for (i=0; i<3; i++) { + /* TODO: explain why add top both min and max??? */ min[i] += 0.01f; max[i] += 0.01f; sub[i] = max[i]-min[i]; } - re->maxdist = dot_v3v3(sub, sub); - if (re->maxdist > 0.0f) re->maxdist= sqrt(re->maxdist); + re->maxdist = len_v3(sub); re->i.infostr= "Raytree finished"; re->stats_draw(re->sdh, &re->i); -- cgit v1.2.3