LucidRaster: GPU Software Rasterizer for Exact Order-Independent Transparency

Krzysztof Jakubowski
2024-06-01
Abstract:Transparency rendering is problematic and can be considered an open problem in real-time graphics. There are many different algorithms currently available, but handling complex scenes and achieving accurate, glitch-free results is still costly. This paper describes LucidRaster: a software rasterizer running on a GPU which allows for efficient exact rendering of complex transparent scenes. It uses a new two-stage sorting technique and sample accumulation method. On average it's faster than high-quality OIT approximations and only about 3x slower than hardware alpha blending. It can be very efficient especially when rendering scenes with high triangle density or high depth complexity.
Graphics
What problem does this paper attempt to address?
### Problems the paper attempts to solve This paper aims to solve the problem of transparency rendering in real - time graphics rendering. Transparency rendering has always been a challenging problem and is considered an open problem in the field of real - time graphics. Although there are currently many different algorithms that can handle transparency, it is still costly to achieve accurate and flawless results when dealing with complex scenes. Specifically, this paper proposes a GPU software rasterizer named **LucidRaster**, which can efficiently and accurately render complex transparent scenes. LucidRaster mainly solves the following problems: 1. **Accurate Order - Independent Transparency (OIT)**: - Traditional hardware alpha blending requires sorting of transparent surfaces, which is difficult to achieve in complex scenes. - Existing OIT techniques, although not requiring sorting, are usually an order of magnitude slower than hardware alpha blending. 2. **Performance optimization**: - LucidRaster uses a new two - stage sorting technique and sample accumulation method, making it on average faster than high - quality OIT approximation algorithms and only about 3 times slower than hardware alpha blending. - In scenes with high triangle density or high depth complexity, the efficiency of LucidRaster is particularly significant. 3. **Flexibility and versatility**: - LucidRaster is implemented in C++ and GLSL shaders and uses the Vulkan API, and is suitable for multiple GPU architectures. - It is not limited to specific hardware features, but instead implements a custom pipeline through software to better adapt to the needs of transparency rendering. ### Formula representation To more clearly illustrate the performance differences, the paper gives the relative running times of different algorithms (relative to the time of hardware alpha blending, which is 1.00). Here are the relative running times of some algorithms: \[ \begin{array}{|c|c|} \hline \text{Algorithm} & \text{Relative Running Time} \\ \hline \text{Hardware alpha blending} & 1.00 \\ \text{Weighted - blended OIT (WBOIT)} & 1.17 \\ \text{Multi - layer alpha blending (MLAB) 2 layers} & 2.78 \\ \text{Multi - layer alpha blending 4 layers} & 4.75 \\ \text{Moment - based OIT 4 power moments, 80 bits} & 2.64 \\ \text{Moment - based OIT 6 power moments, 112 bits} & 3.13 \\ \text{Moment - based OIT 4 trigonometric moments, 144 bits} & 5.00 \\ \text{LucidRaster} & 3.30 \\ \hline \end{array} \] These data indicate that LucidRaster is in terms of performance between hardware alpha blending and some advanced OIT techniques, and is especially suitable for complex scenes that require accurate transparency processing. ### Summary In conclusion, LucidRaster solves the problem of transparency processing in real - time graphics rendering by introducing new sorting techniques and sample accumulation methods, and at the same time achieves a significant improvement in performance, especially in high - complexity scenes.