Blender Git Loki
Git Commits -> Revision 6c60d98
Revision 6c60d98 by Sergey Sharybin (cycles_hair_bvh) April 21, 2016, 16:28 (GMT) |
Cycles: Initial implementation of unaligned BVH builder The idea is to use unaligned boundbox nodes for hair BVH, which should in theory improve performance of ray-to-hair intersection. Only tree building is done currently, still needed to work on packing and traversal code. The idea oh builder is the following: - We calculate SAH of regular split - Then we calculate alignment orientation for the BVH range, using first curve from the range to define orientation. - Then we calculate SAH using alignment from the previous step. - If SAH calculated for a found orientation is better than regular orientation we create unaligned node. - All leaf nodes are unaligned. There is some code duplication which we can avoid, and some parts are not really optimized yet. |
Commit Details:
Full Hash: 6c60d9864fd76f022e3ed3b58b8f2844dbf76153
Parent Commit: 1ed18b9
Lines Changed: +596, -42
2 Added Paths:
/intern/cycles/bvh/bvh_unaligned.cpp (+114, -0) (View)
/intern/cycles/bvh/bvh_unaligned.h (+66, -0) (View)
/intern/cycles/bvh/bvh_unaligned.h (+66, -0) (View)
11 Modified Paths:
/intern/cycles/bvh/bvh_binning.cpp (+203, -12) (Diff)
/intern/cycles/bvh/bvh_binning.h (+19, -2) (Diff)
/intern/cycles/bvh/bvh_build.cpp (+93, -15) (Diff)
/intern/cycles/bvh/bvh_build.h (+16, -11) (Diff)
/intern/cycles/bvh/bvh_node.cpp (+10, -0) (Diff)
/intern/cycles/bvh/bvh_node.h (+16, -2) (Diff)
/intern/cycles/bvh/bvh_params.h (+6, -0) (Diff)
/intern/cycles/bvh/CMakeLists.txt (+2, -0) (Diff)
/intern/cycles/render/mesh.cpp (+34, -0) (Diff)
/intern/cycles/render/mesh.h (+4, -0) (Diff)
/intern/cycles/util/util_transform.h (+13, -0) (Diff)
/intern/cycles/bvh/bvh_binning.h (+19, -2) (Diff)
/intern/cycles/bvh/bvh_build.cpp (+93, -15) (Diff)
/intern/cycles/bvh/bvh_build.h (+16, -11) (Diff)
/intern/cycles/bvh/bvh_node.cpp (+10, -0) (Diff)
/intern/cycles/bvh/bvh_node.h (+16, -2) (Diff)
/intern/cycles/bvh/bvh_params.h (+6, -0) (Diff)
/intern/cycles/bvh/CMakeLists.txt (+2, -0) (Diff)
/intern/cycles/render/mesh.cpp (+34, -0) (Diff)
/intern/cycles/render/mesh.h (+4, -0) (Diff)
/intern/cycles/util/util_transform.h (+13, -0) (Diff)