- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Intel
In our renderer we're often firing rays that do not need to terminate, and whose purpose is to simply "visit" each intersection point.
For example:
- accumulating semi-transparent emission along a ray
- simply accumulate emission*opacity for each intersection point encountered along a ray
Currently, I have this implemented via a filter function, where the filter function will perform the accumulation, then skip/ignore the intersection point (allowing the ray to pass through the whole scene, up to tfar)
My question is if I could expect any performance gain, or even any change in behavior, between rtcOccluded vs rtcIntersect in this case?
(I'm guessing occluded might be faster as it might use a different BVH traversal strategy, but maybe they're both the same
thanks!
Brian
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
rtcOccluded will be faster for plain shadow rays, as it uses a different traversal order that attempts to find any hit fast.
For your use case I would expect rtcOccluded to be the right choice. If all surfaces are transparent then rtcOccluded will be faster as some sorting overhead during traversal is avoided. If all surfaces are occluders, then also rtcOccluded is best suited, as that is the use case it is optimized for. When you have a mix you can construct cases where the one or the other is faster, but in average I would assume rtcOccluded is the best choice.
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
rtcOccluded will be faster for plain shadow rays, as it uses a different traversal order that attempts to find any hit fast.
For your use case I would expect rtcOccluded to be the right choice. If all surfaces are transparent then rtcOccluded will be faster as some sorting overhead during traversal is avoided. If all surfaces are occluders, then also rtcOccluded is best suited, as that is the use case it is optimized for. When you have a mix you can construct cases where the one or the other is faster, but in average I would assume rtcOccluded is the best choice.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Great, thanks Sven!

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page