PotreeConverter generates an octree LOD structure for streaming and real-time rendering of massive point clouds. The results can be viewed in web browsers with Potree or as a desktop application with PotreeDesktop.
Version 2.0 is a complete rewrite with following differences over the previous version 1.7:
Altough the converter made a major step to version 2.0, the format it produces is also supported by Potree 1.7. The Potree viewer is scheduled to make the major step to version 2.0 in 2021, with a rewrite in WebGPU.
mkdir build
cd build
cmake ../
make
PotreeConverter.exe <input> -o <outputDir>
PotreeConverter.exe <input> -o <outputDir> -m poisson
PotreeConverter.exe <input> -o <outputDir> -m random
In Potree, modify one of the examples with following load command:
let url = "../pointclouds/D/temp/test/metadata.json";
Potree.loadPointCloud(url).then(e => {
let pointcloud = e.pointcloud;
let material = pointcloud.material;
material.activeAttributeName = "rgba";
material.minSize = 2;
material.pointSizeType = Potree.PointSizeType.ADAPTIVE;
viewer.scene.addPointCloud(pointcloud);
viewer.fitToScreen();
});
PotreeConverter 2.0 produces a very different format than previous iterations. If you find issues, you can still try previous converters or alternatives:
PotreeConverter 2.0 | PotreeConverter 1.7 | Entwine | |
---|---|---|---|
license | free, BSD 2-clause | free, BSD 2-clause | free, LGPL |
#generated files | 3 files total | 1 per node | 1 per node |
compression | none (TODO) | LAZ (optional) | LAZ |
Performance comparison (Ryzen 2700, NVMe SSD):
@article{SCHUETZ-2020-MPC,
title = "Fast Out-of-Core Octree Generation for Massive Point Clouds",
author = "Markus Schütz and Stefan Ohrhallinger and Michael Wimmer",
year = "2020",
month = nov,
journal = "Computer Graphics Forum",
volume = "39",
number = "7",
doi = "10.1111/cgf.14134",
pages = "13",
publisher = "John Wiley & Sons, Inc.",
pages = "1--13",
keywords = "point clouds, point-based rendering, level of detail",
}