Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2013-02-06 06:48:03 +0400
committerCampbell Barton <ideasman42@gmail.com>2013-02-06 06:48:03 +0400
commit441c7fb79a83b7d6f9e86cd2a3b0c8eaeec6d07c (patch)
treec36037cb30d34107fde0d2441ac7c3e768a8c9bb /source/blender/render
parent6ff014a7fe2621da897c7511fe100ea5ff2af2a9 (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.c8
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);