FastPoints: A State-of-the-Art Point Cloud Renderer for Unity
Elias Neuman-Donihue, Yuhao Zhu, Michael Jarvis
The Current State of Point Cloud Rendering
Used in a variety of contexts
Tools required to build point clouds more accessible than ever
Point clouds are becoming more and more popular
The Current State of Point Cloud Rendering
Point cloud rendering has received a lot of attention in the past few years
Large point clouds still pose a number of challenges
Many modern renderers suffer from usability issues
A Usability Standard for Point Cloud Renderers
We define four criteria:
Existing Solutions
We apply our usability standard to three existing solutions for point cloud rendering:
Existing Solutions - Potree
Existing Solutions - BA_PointCloud
Existing Solutions - CloudCompare
FastPoints
We introduce FastPoints, a new renderer, to meet our usability standard
An external plugin for the Unity game engine
Integrates preprocessing through PotreeConverter v2.0
Introduces novel program architecture to allow interactivity during preprocessing
FastPoints
FastPoints - Program Architecture
Asynchronous program architecture
Immediately downsample unordered cloud
Preprocessing performed online while downsampled point cloud is rendered
All preprocessing done on separate thread, allowing user to interact with Unity environment during this time
FastPoints - Program Architecture
FastPoints - Program Architecture
FastPoints - Implementation Details
Implemented with C# plugin and linked native C++ plugin
C++ side handles actual file processing, including decimation and interfacing with LAStools for file reading and conversion and PotreeConverter for octree construction
C# side handles Unity logic and rendering, takes over completely once preprocessing has completed and octree is ready for rendering
FastPoints - Results
Our architecture cuts down on waiting time significantly for even massive point clouds
FastPoints - Decimated Cloud
Exterior of decimated cloud
Interior of decimated cloud
FastPoints - Results
Decimated cloud of 1 million points
Full octree with point budget of 5 million points
FastPoints - Extensibility
Choosing Unity opens up a vast range of possibilities for extending FastPoints
Unity’s compute shader pipeline could be used to implement GPGPU optimizations
The modular nature of the architecture could allow either the octree construction step or rendering algorithm to be swapped out
Questions?
Thank you!