Community
cancel
Showing results for 
Search instead for 
Did you mean: 
AndrewC
New Contributor I
256 Views

Finding "all" intersections along a ray

Jump to solution

Assuming I am casting a ray into a scene of spheres using Embree 3.5 (native sphere primitive) . I want to find all the sphere intersections along that ray from tnear->tfar.

Is there a more efficient way to do that than just casting the ray, finding the first hit, then re-casting the ray using a tnear of the "exit" point of the sphere that was hit and so on.

0 Kudos
1 Solution
SvenW_Intel
Moderator
256 Views

Yes there is. Please have a look into intersection filters. These are callbacks that get called for each intersection found. You can register such a callback (e.g. store a function point inside the intersection context that is passed to rtcIntersect), add a hit to a list when the callback is called (e.g. you can store a pointer to that list inside the intersection context again), and you let the callback reject the hit in order to gather all hits.

View solution in original post

2 Replies
SvenW_Intel
Moderator
257 Views

Yes there is. Please have a look into intersection filters. These are callbacks that get called for each intersection found. You can register such a callback (e.g. store a function point inside the intersection context that is passed to rtcIntersect), add a hit to a list when the callback is called (e.g. you can store a pointer to that list inside the intersection context again), and you let the callback reject the hit in order to gather all hits.

View solution in original post

AndrewC
New Contributor I
256 Views

Great, I thought that was possible, but it was not clear on how to reject the hit in the callback.

Reply