[Bf-committers] [GSoC 2019] Embree BVH for GPU Questions

Alex Ozer thealexozer at gmail.com
Fri Apr 5 06:52:28 CEST 2019

Hi! I’m very interested in working on leveraging the Embree BVH for
GPU rendering for this year's Google Summer of Code. It is the second
project on the GSoC ideas page [1].

I’m trying to understand as much as possible so that my proposal can
be as technically-focused and direct as possible. I would like to ask
for clarification on a few points.

> Implement converter from Embree BVH to Cycles BVH data structures.
> Adjust Cycles kernel BVH traversal for faster motion blur.

I'm not sure whether this means to convert Embree's BVH to Cycles' BVH
with or without modifying Cycles' BVH. At first I thought it was
"without", but I'm not sure what adjusting Cycles kernel BVH traversal
would specifically entail unless maybe it would be for taking
advantage of the special properties of the "Spacial-Temporal" type of
BVH which Embree constructs [3]. Essentially, would this task involve
implementing features of Embree's BVH (such as its time bounds) in
Cycles' BVH, and modifying the Cycles kernel to leverage this for
faster motion blur?

> Verify if Embree can export oriented bounding boxes and motion steps, and if needed improve Embree API.

I'm not sure what the purpose of this is; it seems to me that Cycles'
BVH uses axis-aligned bounding boxes. Also, I'm not sure on the
terminology "motion steps".

There's a good chance I'm misunderstanding something fundamental here,
and if so feel free to set me straight! Any clarification would be
much appreciated.

I also previously asked a smaller question about the project on the
forums [2] where it was suggested I could direct further
clarifications to the mailing list.


[1]: https://wiki.blender.org/wiki/GSoC/Ideas_Suggestions#Ideas
[2]: https://devtalk.blender.org/t/gsoc-2019-embree-bvh-for-gpu/6547
[3]: https://embree.github.io/papers/2017-HPG-msmblur.pdf

More information about the Bf-committers mailing list