16
$\begingroup$

In the render properties panel, under the performance rollout there is a setting for static vs. dynamic BVH. I am simply wondering what this setting does.

From the Wiki:

The raytracing acceleration structure used is a bounding volume hierarchy... This code includes spatial splits to make it more competitive with kd-trees.

Unfortunately, though I know quite a bit about cycles, this is totally Greek to me.

I couldn't really find much else useful on the web other than it may have some impact on animations only. Can anybody explain this better (maybe starting with BVH in general)?

$\endgroup$
23
$\begingroup$

About BVH:

BVH creation is a method of space-partitioning to speed-up ray-tracing (or also collision detection, etc.). BVH itself is a node-tree data structure that wraps polygons in bounding-boxes based on spatial-hierarchy - thus Bounding Volume Hierarchy. You can compare how BVH looks (left) in contrast with Octree (right):

enter image description here

Space data structures eliminates potential ray intersection candidates by omitting geometric objects in bounding volumes which are not intersected by the current ray. It's still an area of active research (gpu friendly implementations) - there are many more types (kD-tree, BVH, BIH, Octree, Uniform Grid,..) and it often depends on what you need them for.

Here is link (.pdf) for more reading how BVH works for anyone interested.


Now static vs. dynamic option for view-port:

If you start view-port rendering BVH will be created. When the scene is changed (this counts object movement, geometry deforming, etc.) the static BVH needs to be completely rebuilded resulting in slower update times. But it renders faster. With dynamic BVH only a portion needs to be updated, which results in faster updating but it renders slower.

For rendering only static BVH is used, and the BVH tree can be also cached for faster re-renders (when for example only camera or materials changes) or cached for all animation frames for faster re-animations (if that's a word:)

| improve this answer | |
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.