Import point clouds
Pixyz can import points clouds from the .e57, .rcp, .pts, and .ptx formats.
The import workflow for point clouds is the same as for the import of any other type of model. Read more about importing a model.
Import parameters for point clouds
Import parameters for point clouds differ from other file formats to the nature of the data.
Avoid negative scale
Some file formats use symmetry to avoid duplicate meshes.
If you don't select this option, then symmetry is handled with a single mesh and matrices with negative scales. Such processing may be problematic, for example for lightmapping or collision with Unity.
If you select this option, such matrices are kept with positive scales and symmetries are split into two mirrored meshes.
Segmentation
The segmentation parameter allows users to segment their point clouds intro several cubes of points. A value of 10 for segmentation divides the point cloud in at most 1000 GameObjects (10 x 10 x 10) that are each one tenth of the size of the initial point cloud. This option allows Unity to perform frustrum culling, which is an important optimization step that consists in not rendering objects that aren't visible. If you split the point cloud into several objects, Unity only renders objects that are visible, instead of rendering the whole point cloud every time.
Segmentation is also useful when you combine it with the creation of levels of details (LODs) to create multiple groups of LODs for better performance.
To turn off segmentation, set segmentation to 1
. This value results in a single object.
Density of point clouds
Use this option to remove points evenly from the point cloud to achieve a better frame rate in Unity.
If you select Maximum, then Pixyz imports all points from the point cloud.
Create LODs
Create LODs from point clouds.
This process is entirely automatic. The only required input is the maximum number of LODs.
How it works
For each object, Pixyz determines the distance between the camera and the object at which we can consider that the same object that has at most half the number of points renders the same as the source object. This computation takes into account the size of splats, that is, the shader of the point cloud. Then, Pixyz decimates the point cloud based on that distance to reach the target and iterates the process for each LOD.
This process provides these benefits:
- Perfectly smooth transitions between levels of details, that is, no popping
- A predictable cost in system memory (RAM) which can't exceed twice the memory that is required to load the model without LODs (100% + 50% + 25% + 12.5%…)
Warning
The import of a point cloud may be memory-intensive depending on its size. To import a point cloud that has over 100 million points, you need a workstation with at least 32GB of RAM. If not enough memory is available, the import process may be slower or may even crash Unity.
Note
You can't display, in a WebGL viewer, point cloud data that is imported by Pixyz Plugin for Unity, due to a limitation of its shader compilation target. The optimized Pixyz Splats Shader, which is used to render point clouds, uses Shader Compilation Target 4.0. The reason is that we leverage geometry shaders that aren't available on lower targets. The WebGL build supports Shader Compilation Target only up to 3.0.