Create a build directory to compile the binaries.
mkdir out
cd out
cmake ..
make -j10
To compress a LAS file:
cd out
./preprocess path_to_las.las test.huffman 1
The last argument is 1 if you want to perform Morton Sorting. It can be set to 0
if you want to disable it. We found Morton Sorting to work better in our cases.
The program looks for the file out/test.huffman
by default. You can change the path in src/main.cpp
accordingly.
To launch the renderer, run the following from the root of the project:
./out/compute_rasterizer
@article{goel2024realtime,
author={Goel, Rahul and Sch\"{u}tz, Markus and Narayanan, P. J. and Kerbl, Bernhard},
title={Real-Time Decompression and Rasterization of Massive Point Clouds},
journal = {Proceedings of the ACM on Computer Graphics and Interactive Techniques},
year={2024},
doi = {10.1145/3675373},
url = {https://rahul-goel.github.io/pcrhpg24/}
}
This work was built on top of Markus' work. Original README is included below for completion.
This repository contains the source code for our papers about compute rasterization of point clouds. The project is currently crude and difficult to use, but we plan to add the option to drag&drop your own point clouds after vacation. We will also add a test data set by then.
-
"Software Rasterization of 2 Billion Points in Real-Time"
Current branch -
"Rendering Point Clouds with Compute Shaders and Vertex Order Optimization"
In branch compute_rasterizer_2021
- Clone the repository
- Modify ./src/main.cpp so that it loads your own data set.
- Add a new setting
- Change
Setting setting = settings["..."];
to your own setting.
- Compile build/ComputeRasterizer.sln with Visual Studio 2022.
- Run (ctrl + f5)
Currently, only point clouds in LAS format are supported.
Method | Location | |
---|---|---|
basic | ./modules/compute_loop_las | |
prefetch | ./modules/compute_loop_las2 | fastest, each thread fetches 4 points at a time |
hqs | ./modules/compute_loop_las_hqs | High-Quality Shading |
LOD | ./modules/compute_loop_nodes | Support for the Potree LOD format |
LOD hqs | ./modules/compute_loop_nodes_hqs |