We chose to use unity and Keijiro Takahashi’s point cloud model renderer plugin for the campus section. With the popularity of 3D scanning technology, point cloud data has become increasingly important in various fields such as industrial design, architecture, and mapping. However, point cloud itself as an unstructured data format has relatively low rendering efficiency when visualized directly. Unity is a popular 3D game engine that provides efficient rendering support for particle systems through its built-in VFX Graph tool.
The campus point cloud data in PLY format is imported into Unity project using the Point Cloud rendering plugin. The plugin automatically extracts vertex position and color information from the point cloud to generate Position Map and Color Map texture assets.
A ParticleSystem node is added as the base particle system in the VFX Graph window. A SetPositionFromMap node is used to read the position of each particle from the Position Map. A ColorOverLifetime node is used to read the color of each particle from the Color Map. The velocity property of particles is disabled to keep the point cloud static. A Turbulence node is added to introduce fine details and a Color node is used to control transparency.
The VFX Graph is attached to the scene to achieve real-time point cloud rendering. Optimization involves balancing sampling rate and details.
In general, the methodology is as follows:
- Point cloud import
Imported a PLY point cloud file of campus using the Point Cloud Render plugin in Unity.
- Generate vertex textures
The plugin automatically generated a Position texture storing vertex positions and a Color texture from the imported point cloud data.
- Create a VFX graph
A ParticleSystem node was created as the base in the VFX Graph window.
- Set particle positions
A SetPositionFromMap node was added to sample the position of each particle from the Position texture.
- Set particle colors
A ColorOverLifetime node was used to sample the color of each particle from the Color texture.
- Disable particle velocity
The Velocity property in the system was disabled to keep the point cloud static.
- Add details
A Turbulence node was used to adjust the shape and a Color node controlled particle transparency with ALPHA.
- Render the scene
The VFX graph was added to the scene to see the real-time rendered point cloud effect.
- Optimization tips
Sampling rate could be optimized to balance detail and performance, and emitter size adjustment was suggested.