A Comparison of Rendering Techniques for 3D Line Sets with Transparency
Michael Kern, Christoph Neuhauser, Torben Maack, Mengjiao Han, Will Usher, Rüdiger Westermann
AbstractThis paper presents a comprehensive study of rendering techniques for 3D line sets with transparency. The rendering of transparent lines is widely used for visualizing trajectories of tracer particles in flow fields. Transparency is then used to fade out lines deemed unimportant, based on, for instance, geometric properties or attributes defined along with them. Accurate blending of transparent lines requires rendering the lines in back-to-front or front-to-back order, yet enforcing this order for space-filling 3D line sets with extremely high-depth complexity becomes challenging. In this paper, we study CPU and GPU rendering techniques for transparent 3D line sets. We compare accurate and approximate techniques using optimized implementations and several benchmark data sets. We discuss the effects of data size and transparency on quality, performance, and memory consumption. Based on our study, we propose two improvements to per-pixel fragment lists and multi-layer alpha blending. The first improves the rendering speed via an improved GPU sorting operation, and the second improves rendering quality via transparency-based bucketing.
It comprises the implementation of several transparency rendering techniques, including:
- Depth Peeling
- Per-Pixel Linked Lists (with different sorting algorithms)
- Multi-Layer Alpha Blending (with depth bucketing)
- Moment-Based Order-Independent Transparency
- Voxel Ray Casting
- OSP Ray Tracing (CPU Ray Tracing)
The source code for RTX Ray Tracing can be found here: RTX Ray Tracing
Note that our RTX software was used for this paper to render transparent line sets only. However, we have also applied ray tracing to different data sets, such as point clouds or triangle sets. Please contact me if you want to have more details.
The line sets used in our paper can be obtained from here: Line Set Database
Results and Videos
The benchmark results including the rendering times, memory consumption, image quality comparisons, and used transfer functions for color and opacity mapping can be obtained here: Benchmark results
Videos - rendering of approximate techniques: https://youtu.be/bxV71bkJM4k