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:
-rw-r--r--intern/cycles/bvh/bvh_build.cpp8
-rw-r--r--intern/cycles/bvh/bvh_params.h4
2 files changed, 10 insertions, 2 deletions
diff --git a/intern/cycles/bvh/bvh_build.cpp b/intern/cycles/bvh/bvh_build.cpp
index d283cdaf9d7..48f1d063fd1 100644
--- a/intern/cycles/bvh/bvh_build.cpp
+++ b/intern/cycles/bvh/bvh_build.cpp
@@ -435,6 +435,7 @@ bool BVHBuild::range_within_max_leaf_size(const BVHRange& range,
return false;
size_t num_triangles = 0;
+ size_t num_motion_triangles = 0;
size_t num_curves = 0;
size_t num_motion_curves = 0;
@@ -445,13 +446,16 @@ bool BVHBuild::range_within_max_leaf_size(const BVHRange& range,
num_curves++;
if(ref.prim_type() & PRIMITIVE_MOTION_CURVE)
num_motion_curves++;
- else if(ref.prim_type() & PRIMITIVE_ALL_TRIANGLE)
+ else if(ref.prim_type() & PRIMITIVE_TRIANGLE)
num_triangles++;
+ else if(ref.prim_type() & PRIMITIVE_MOTION_TRIANGLE)
+ num_motion_triangles++;
}
return (num_triangles <= params.max_triangle_leaf_size) &&
+ (num_motion_triangles <= params.max_motion_triangle_leaf_size) &&
(num_curves <= params.max_curve_leaf_size) &&
- (num_motion_curves <= params.max_curve_leaf_size);
+ (num_motion_curves <= params.max_motion_curve_leaf_size);
}
/* multithreaded binning builder */
diff --git a/intern/cycles/bvh/bvh_params.h b/intern/cycles/bvh/bvh_params.h
index 431e42a0d6a..38a2e557a5d 100644
--- a/intern/cycles/bvh/bvh_params.h
+++ b/intern/cycles/bvh/bvh_params.h
@@ -43,7 +43,9 @@ public:
/* number of primitives in leaf */
int min_leaf_size;
int max_triangle_leaf_size;
+ int max_motion_triangle_leaf_size;
int max_curve_leaf_size;
+ int max_motion_curve_leaf_size;
/* object or mesh level bvh */
bool top_level;
@@ -80,7 +82,9 @@ public:
min_leaf_size = 1;
max_triangle_leaf_size = 8;
+ max_motion_triangle_leaf_size = 8;
max_curve_leaf_size = 1;
+ max_motion_curve_leaf_size = 1;
top_level = false;
use_qbvh = false;