Adding Custom Intersectors to the C++ Ray Tracing Template Library Visionaray
Stefan Zellmann

TL;DR
This paper introduces a method for integrating custom intersection logic into C++ ray tracing libraries, enabling users to inject their own code efficiently during traversal, which enhances flexibility for various rendering tasks.
Contribution
The paper presents a novel static callback mechanism called 'custom intersectors' integrated into the Visionaray library for flexible, user-defined ray-surface interaction validation.
Findings
Enables user-defined intersection logic in ray tracing.
Integrates seamlessly with the Visionaray template library.
Improves flexibility for rendering and validation tasks.
Abstract
Most ray tracing libraries allow the user to provide custom functionality that is executed when a potential ray surface interaction was encountered to determine if the interaction was valid or traversal should be continued. This is e.g. useful for alpha mask validation and allows the user to reuse existing ray object intersection routines rather than reimplementing them. Augmenting ray traversal with custom intersection logic requires some kind of callback mechanism that injects user code into existing library routines. With template libraries, this injection can happen statically since the user compiles the binary code herself. We present an implementation of this "custom intersector" approach and its integration into the C++ ray tracing template library Visionaray.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsComputer Graphics and Visualization Techniques · 3D Shape Modeling and Analysis · Video Analysis and Summarization
