Intel® Embree Ray Tracing Kernels
Discussion forum on the open source ray tracing kernels for fast photo-realistic rendering on Intel® CPU(s)

Plans to implement CLPT and ORST?

Josh_B_
Beginner
668 Views

Hi,

Just wanted to know if the new acceleration structures that are described here (http://rapt.technology/posts/fast-ray-tracing-kernels/) would be beneficial, or if there are already plans to implement CLPT or ORST? Both algorithms are BVH4 and suited for primary and secondary ray types respectively, with the authors showing very impressive results.

Thanks,

Josh

0 Kudos
1 Solution
BenthinC_Intel
Employee
668 Views

In general ray stream approaches can improve traversal performance due to amortization of memory accesses (over many rays) and control flow. How much you will gain depends largely on the coherence in the stream. Also the renderer has to support ray streams which is probably the biggest issue as the majority of renderers out there still trace a single ray per HW thread. That said I think supporting ray streams makes a lot of sense and as a proof point we added "initial" support for those with Embree 2.9.0.

Both ORST and CLPT are very interesting approaches, however, for the "initial" support in Embree we have chosen a slightly different implementation which plays more nicely with both 4-wide/8-wide BVHs (where the 8-wide BVH is quite faster than a 4-wide BVH for incoherent rays) and smaller streams. At some point we'll have to do some apples-to-apples comparison as all the different methods have different pros/cons but AFAIK not all source code is available yet.

Carsten.

View solution in original post

0 Kudos
4 Replies
BenthinC_Intel
Employee
669 Views

In general ray stream approaches can improve traversal performance due to amortization of memory accesses (over many rays) and control flow. How much you will gain depends largely on the coherence in the stream. Also the renderer has to support ray streams which is probably the biggest issue as the majority of renderers out there still trace a single ray per HW thread. That said I think supporting ray streams makes a lot of sense and as a proof point we added "initial" support for those with Embree 2.9.0.

Both ORST and CLPT are very interesting approaches, however, for the "initial" support in Embree we have chosen a slightly different implementation which plays more nicely with both 4-wide/8-wide BVHs (where the 8-wide BVH is quite faster than a 4-wide BVH for incoherent rays) and smaller streams. At some point we'll have to do some apples-to-apples comparison as all the different methods have different pros/cons but AFAIK not all source code is available yet.

Carsten.

0 Kudos
Josh_B_
Beginner
668 Views

Thank you Carsten for such an informed reply, I'll pull that down with the new release. The work you guys have done looks very promising and I'll look forward to any future development in this area. Cheers, Josh

0 Kudos
utsv_g_
Beginner
668 Views

NICE

0 Kudos
utsv_g_
Beginner
668 Views

nice2

0 Kudos
Reply