Commit: a46ba3c4fd35400b4231a260bb8fdd70f803ba3b
Author: Sergey Sharybin
Date:   Wed Jul 6 11:35:31 2016 +0200
Branches: cycles_bvh
https://developer.blender.org/rBa46ba3c4fd35400b4231a260bb8fdd70f803ba3b

Cycles BVH: Move unaligned threshold to parameters

Suggested by Brecht in review.

Should be no functional changes.

===================================================================

M       intern/cycles/bvh/bvh_build.cpp
M       intern/cycles/bvh/bvh_params.h

===================================================================

diff --git a/intern/cycles/bvh/bvh_build.cpp b/intern/cycles/bvh/bvh_build.cpp
index e9a9d7a..67ffb68 100644
--- a/intern/cycles/bvh/bvh_build.cpp
+++ b/intern/cycles/bvh/bvh_build.cpp
@@ -477,7 +477,9 @@ BVHNode* BVHBuild::build_node(const BVHObjectBinning& 
range, int level)
        float unalignedSplitSAH = FLT_MAX;
        float unalignedLeafSAH = FLT_MAX;
        Transform aligned_space;
-       if(params.use_unaligned_nodes && splitSAH > 0.7f*leafSAH) {
+       if(params.use_unaligned_nodes &&
+          splitSAH > params.unaligned_split_threshold*leafSAH)
+       {
                aligned_space = unaligned_heuristic.compute_aligned_space(
                        range, &references[0]);
                unaligned_range = BVHObjectBinning(range,
@@ -581,7 +583,9 @@ BVHNode* BVHBuild::build_node(const BVHRange& range,
        float unalignedSplitSAH = FLT_MAX;
        /* float unalignedLeafSAH = FLT_MAX; */
        Transform aligned_space;
-       if(params.use_unaligned_nodes && splitSAH > 0.7f*leafSAH) {
+       if(params.use_unaligned_nodes &&
+          splitSAH > params.unaligned_split_threshold*leafSAH)
+       {
                aligned_space =
                        unaligned_heuristic.compute_aligned_space(range, 
&references->at(0));
                unaligned_split = BVHMixedSplit(this,
diff --git a/intern/cycles/bvh/bvh_params.h b/intern/cycles/bvh/bvh_params.h
index c79f0fa..2e698a8 100644
--- a/intern/cycles/bvh/bvh_params.h
+++ b/intern/cycles/bvh/bvh_params.h
@@ -33,6 +33,9 @@ public:
        bool use_spatial_split;
        float spatial_split_alpha;
 
+       /* Unaligned nodes creation threshold */
+       float unaligned_split_threshold;
+
        /* SAH costs */
        float sah_node_cost;
        float sah_primitive_cost;
@@ -68,6 +71,8 @@ public:
                use_spatial_split = true;
                spatial_split_alpha = 1e-5f;
 
+               unaligned_split_threshold = 0.7f;
+
                /* todo: see if splitting up primitive cost to be separate for 
triangles
                 * and curves can help. so far in tests it doesn't help, but 
why? */
                sah_node_cost = 1.0f;

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to