Blender Git Commit Log
Git Commits -> Revision 1eacbf4
Revision 1eacbf4 by Sergey Sharybin (master) July 7, 2016, 15:25 (GMT) |
Cycles: Support visibility check for inner nodes of QBVH It was initially unsupported because initial idea of checking visibility of all children was slowing scenes down a lot. Now the idea has changed and we only perform visibility check of current node. This avoids huge slowdown (from tests here it seems to be withing 1-2%, but more tests would never hurt) and gives nice speedup of ray traversal for complex scenes which utilized ray visibility. Here's timing of koro.blend: Without visibility check With visibility check Original file 4min 20sec 4min 23sec Camera rays only 1min 43 sec 55sec Unfortunately, this doesn't come for free and requires extra data in BVH node, which increases memory usage of BVH nodes by 15%. This we can solve with some future trickery of avoiding __tri_storage created for curve segments. |
Commit Details:
Full Hash: 1eacbf47e3cdf009b27972e1c617fb1ff56c0aad
Parent Commit: a19da5c
Lines Changed: +87, -36
9 Modified Paths:
/intern/cycles/bvh/bvh.cpp (+32, -25) (Diff)
/intern/cycles/bvh/bvh.h (+1, -1) (Diff)
/intern/cycles/kernel/geom/geom.h (+1, -1) (Diff)
/intern/cycles/kernel/geom/geom_qbvh.h (+2, -2) (Diff)
/intern/cycles/kernel/geom/geom_qbvh_shadow.h (+13, -1) (Diff)
/intern/cycles/kernel/geom/geom_qbvh_subsurface.h (+2, -1) (Diff)
/intern/cycles/kernel/geom/geom_qbvh_traversal.h (+12, -3) (Diff)
/intern/cycles/kernel/geom/geom_qbvh_volume.h (+12, -1) (Diff)
/intern/cycles/kernel/geom/geom_qbvh_volume_all.h (+12, -1) (Diff)
/intern/cycles/bvh/bvh.h (+1, -1) (Diff)
/intern/cycles/kernel/geom/geom.h (+1, -1) (Diff)
/intern/cycles/kernel/geom/geom_qbvh.h (+2, -2) (Diff)
/intern/cycles/kernel/geom/geom_qbvh_shadow.h (+13, -1) (Diff)
/intern/cycles/kernel/geom/geom_qbvh_subsurface.h (+2, -1) (Diff)
/intern/cycles/kernel/geom/geom_qbvh_traversal.h (+12, -3) (Diff)
/intern/cycles/kernel/geom/geom_qbvh_volume.h (+12, -1) (Diff)
/intern/cycles/kernel/geom/geom_qbvh_volume_all.h (+12, -1) (Diff)