diff options
author | Campbell Barton <ideasman42@gmail.com> | 2013-02-06 06:48:03 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2013-02-06 06:48:03 +0400 |
commit | 441c7fb79a83b7d6f9e86cd2a3b0c8eaeec6d07c (patch) | |
tree | c36037cb30d34107fde0d2441ac7c3e768a8c9bb /source/blender/render | |
parent | 6ff014a7fe2621da897c7511fe100ea5ff2af2a9 (diff) |
fix for crashes running some operators in background mode and some divide by zero errors.
Diffstat (limited to 'source/blender/render')
-rw-r--r-- | source/blender/render/intern/source/rayshade.c | 8 |
1 files changed, 6 insertions, 2 deletions
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); |