Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
New Contributor I
49 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

Accepted Solutions
Highlighted
Moderator
49 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

0 Kudos
2 Replies
Highlighted
Moderator
50 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

0 Kudos
Highlighted
New Contributor I
49 Views

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

0 Kudos