On this topic I’ll post weekly report on this project.
Here’s a link to the Proposal, and to the branch
soc-2019-embree-gpu
On this topic I’ll post weekly report on this project.
Here’s a link to the Proposal, and to the branch
soc-2019-embree-gpu
rtcBuildBVH
:
Plan for next week:
Last time I checked, BVH Builder did not support motion blur, so you may need to go with BVH Access.
Improve converter to support :
Still no support for curves
Render time should be almost the same for basic scene (including render time for scene with particle).
Plan for next week:
Those function are not yet used for rendering : the tree is built, but not used
Plan for next week :
Question from a simple-minded Blender user: will this noticeably speed up Cycles rendering speed?
Plan for next week :
@MetinSeven Currently, the rendering time is almost identical, the main benefit will be visible on specific scenes when Embree’s functionality will have been implemented (for example, STBVH shines when nearby objects are moving in the same direction). In those cases, the rendering time should improve considerably.
Plan for next weeks :
Plan for next week :
Traversal now support STBVH, but performance are still a bit under original implementation :
Plan for next week :
pack
structure (currently it copy Embree’s tree to Blender’s tree then fill the structure. The idea is to fill the structure directly, allowing to some optimization like primitive re-ordering)Yes it’s going to increase performance you can check he intel website
What does your test scene look like? For transformation motion blur, I would not expect too much from going to Embree, but improvements should be significant for deformation blur. Did you test your scene with my 100% Embree implementation, how does that perform?
Now the traversal build during traversal the pack
structure, allowing us to :
Plan for next week :
@StefanW I tried to test with your implementation, but as it can only run on CPU render time are way different, and run on a CPU with a BVH2 tree is really slow …
Did you extend Cycles’ BVH to interpolate bounding boxes over time? The major speed benefit from Embree for motion blur comes from the fact that it stores one bounding box for the beginning and one for the end of a time step, using linear interpolation for the time in-between. Cycles on the other hand uses one bounding box for the entire time step, which isn’t nearly as efficient.
No, not for the moment, it’s a point that I neglected. I will focus on this for next week (instead of support for curve).
It should make a big difference, I think. Especially for fast moving geometry or diagonal movements it will result in much tighter bounds.
Plan for next week :
Will not compile unless you use the modified version of Embree
Plan for next weeks :
Plan for next weeks :
Nice work!
Will the improvements only be fully migrated to Blender master once the Embree for GPU branch is entirely finished, or are there already parts of the branch being migrated to the 2.81 master?