Fast, High Precision Ray/Fiber Intersection using Tight, Disjoint Bounding Volumes
Analyzing and identifying the shortcomings of current subdivision methods for finding intersections of rays with fibers defined by the surface of a circular contour swept along a Bézier curve, we present a new algorithm that improves precision and performance. Instead of the inefficient pruning using overlapping axis aligned bounding boxes and determining the closest point of approach of the ray and the curve, we prune using disjoint bounding volumes defined by cylinders and calculate the intersections on the limit surface. This in turn allows for computing accurate parametric position and normal in the point of intersection. The iteration requires only one bit per subdivision to avoid costly stack memory operations. At a low number of subdivisions, the performance of the high precision algorithm is competitive, while for a high number of subdivisions it dramatically outperforms the state-of-the-art. Besides an extensive mathematical analysis, source code is provided.