LucidRaster: real-time GPU software rasterizer for exact OIT

LucidRaster is a software rasterizer running on a gpu designed specifically to support efficient order independent transparency. Most of LucidRaster logic is implemented in Vulkan compute shaders.

[GITHUB LINK]
[PAPER]

Lucid rasterizer is quite efficient: it's faster than high-quality approximations like Moment-based OIT and it's exact. On average it takes only 3x as much time as (unordered) hardware alpha-blending. For scenes with lots of tiny triangles it can even be faster than hardware.


Scene Triangles Fragments LucidRaster render time Hardware render time Ratio (SW / HW)
Boxes 6K 12M 1705 410 4.16
Bunny 72K 740K 337 77 4.38
Conference 167K 5M 1103 242 4.56
Dragon 437K 666K 834 387 2.16
Hairball 1495K 22M 12077 3527 3.42
Powerplant 6400K 18M 9932 4627 2.15
Sponza 132K 24M 3839 1692 2.27
White oak 20K 120M 12912 6065 2.13
Thai 2390K 1124K 7171 7223 0.99

Rendering times (microseconds) in 2560x1330 resolution on RTX 3050 TI.


LucidRaster demo for windows:

[lucid_beta_windows.zip] (5 MB)
[scenes.zip] (336 MB)
[scenes.7z] (221 MB)
[MSVC++ Redist 2015-2022] (Optional)

More scenes:

[thai.7z] (97 MB)
[dragon2.7z] (68 MB)
[buddha.7z] (9 MB)

Running: download and unpack lucid_beta.zip and either scenes.zip or scenes.7z. In case of problems with missing dlls, make sure that MSVC++ redist is installed. Lucid_beta will also work without downloaded scenes, but only three simple scenes will be available.

LucidRaster demo is still work in progress, so some bugs are expected. Testing & development was mainly done on NVIDIA GPU (GTX 3050 Ti). All rasterizer options except debug_* should work. For now LucidRaster will not work on Intel GPUs, and on AMD GPUs on Windows it might work slowly. It seems that AMD drivers for windows don't support Vulkan's subgroup instructions as well as the linux driver. In our tests on a computer with RX 6700 XT, LucidRaster works efficiently on Ubuntu 22.04, but on Windows 10, it's about 2x-3x slower.



More screen-shots: