blender/intern/cycles
Sergey Sharybin 03f28553ff Cycles: Implement QBVH tree traversal
This commit implements traversal for QBVH tree, which is based on the old loop
code for traversal itself and Embree for node intersection.

This commit also does some changes to the loop inspired by Embree:

- Visibility flags are only checked for primitives.

  Doing visibility check for every node cost quite reasonable amount of time
  and in most cases those checks are true-positive.

  Other idea here would be to do visibility checks for leaf nodes only, but
  this would need to be investigated further.

- For minimum hair width we extend all the nodes' bounding boxes.

  Again doing curve visibility check is quite costly for each of the nodes and
  those checks returns truth for most of the hierarchy anyway.

There are number of possible optimization still, but current state is good
enough in terms it makes rendering faster a little bit after recent watertight
commit.

Currently QBVH is only implemented for CPU with SSE2 support at least. All
other devices would need to be supported later (if that'd make sense from
performance point of view).

The code is enabled for compilation in kernel. but blender wouldn't use it
still.
2014-12-25 02:50:49 +05:00
..
app Cycles: Add missing entries in the Integrator constructor and some updates 2014-12-17 22:28:33 +01:00
blender Cycles: Do some logging when motion is detected in the scene 2014-12-18 14:40:14 +05:00
bvh Cycles: Implement QBVH tree traversal 2014-12-25 02:50:49 +05:00
cmake Ghost Context Refactor 2014-10-07 15:47:32 -05:00
device Docs: reference the new manual 2014-12-08 11:18:58 +01:00
doc Cycles: relicense GNU GPL source code to Apache version 2.0. 2013-08-18 14:16:15 +00:00
kernel Cycles: Implement QBVH tree traversal 2014-12-25 02:50:49 +05:00
render Cycles: Implement QBVH tree traversal 2014-12-25 02:50:49 +05:00
subd Add safe_normalize to cycles, avoid checking length first 2014-11-08 13:37:42 +01:00
util Cycles: Add some utility functions and structures 2014-12-25 02:50:49 +05:00
CMakeLists.txt Cycles: Use lock in the memory statistics 2014-12-02 15:50:46 +05:00
SConscript Cycles: Support logging when building with SCons 2014-12-03 22:46:56 +05:00