Point cloud rendering


The ARR point cloud rendering feature is currently in public preview.

This feature is being actively developed, and may not be complete. It's made available on a “Preview” basis. You can test and use this feature in your scenarios, and provide feedback.

For more information, see Supplemental Terms of Use for Microsoft Azure Previews.

ARR supports rendering of point clouds as an alternative to triangular meshes. Point cloud rendering enables additional use cases where converting point clouds to triangular meshes as a preprocessing step is either impractical (turnaround times, complexity) or if the conversion process drops important detail.

Similar to triangular mesh conversion, point cloud conversion doesn't decimate the input data.

Point cloud conversion

Conversion of point cloud assets works fully analogously to converting triangular meshes: A single point cloud input file is converted to an .arrAsset file, which in turn can be consumed by the runtime API for loading.

The list of supported point cloud file formats can be found in the model conversion section.

Conversion settings specifically for point cloud files are explained in the conversion settings paragraph.

Size limitations

For the maximum number of allowed points, the same kind of distinctions between a standard and premium rendering session applies, as described in paragraph about server size limits.

Global rendering properties

There's a single API to access global rendering settings for point clouds. The _Experimental suffix has been added to indicate that the API is currently in public preview and might be subject to change.

void ChangeGlobalPointCloudSettings(RenderingSession session)
    PointCloudSettings settings = session.Connection.PointCloudSettings_Experimental;

    // Make all points bigger (default = 1.0)
    settings.PointSizeScale = 1.25f;
void ChangeGlobalPointCloudSettings(ApiHandle<RenderingSession> session)
    ApiHandle<PointCloudSettings> settings = session->Connection()->PointCloudSettings_Experimental();

    // Make all points bigger (default = 1.0)

API documentation

Next steps