Finding "all" intersections along a ray

Finding "all" intersections along a ray

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.

3 posts / 0 new

Best Reply

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.

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

Leave a Comment

Please sign in to add a comment. Not a member? Join today