diff options
Diffstat (limited to 'intern/cycles/bvh/params.h')
-rw-r--r-- | intern/cycles/bvh/params.h | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/intern/cycles/bvh/params.h b/intern/cycles/bvh/params.h index 8f185a2640f..16edf2e88e4 100644 --- a/intern/cycles/bvh/params.h +++ b/intern/cycles/bvh/params.h @@ -83,6 +83,8 @@ class BVHParams { int max_motion_triangle_leaf_size; int max_curve_leaf_size; int max_motion_curve_leaf_size; + int max_point_leaf_size; + int max_motion_point_leaf_size; /* object or mesh level bvh */ bool top_level; @@ -98,13 +100,13 @@ class BVHParams { /* Split time range to this number of steps and create leaf node for each * of this time steps. * - * Speeds up rendering of motion curve primitives in the cost of higher - * memory usage. + * Speeds up rendering of motion primitives in the cost of higher memory usage. */ - int num_motion_curve_steps; /* Same as above, but for triangle primitives. */ int num_motion_triangle_steps; + int num_motion_curve_steps; + int num_motion_point_steps; /* Same as in SceneParams. */ int bvh_type; @@ -132,6 +134,8 @@ class BVHParams { max_motion_triangle_leaf_size = 8; max_curve_leaf_size = 1; max_motion_curve_leaf_size = 4; + max_point_leaf_size = 8; + max_motion_point_leaf_size = 8; top_level = false; bvh_layout = BVH_LAYOUT_BVH2; @@ -139,6 +143,7 @@ class BVHParams { num_motion_curve_steps = 0; num_motion_triangle_steps = 0; + num_motion_point_steps = 0; bvh_type = 0; @@ -166,6 +171,12 @@ class BVHParams { return (size <= min_leaf_size || level >= MAX_DEPTH); } + bool use_motion_steps() + { + return num_motion_curve_steps > 0 || num_motion_triangle_steps > 0 || + num_motion_point_steps > 0; + } + /* Gets best matching BVH. * * If the requested layout is supported by the device, it will be used. |