RayCombine is a tool for merging multiple ray clouds using different combination strategies. It combines clouds without moving them but omits rays according to the specified merge type, producing both a combined cloud and a residual cloud of differences.
raycombine <merge_type> raycloud1.ply raycloud2.ply ... raycloudN.ply <threshold> rays [options]
raycombine [all] raycloud1.ply raycloud2.ply ... raycloudN.ply [options]
raycombine basecloud.ply <merge_type> raycloud1.ply raycloud2.ply <threshold> rays [options]
Combines into one cloud with minimal objects at differences. Creates a union of the point clouds.
raycombine min cloud1.ply cloud2.ply 20 rays
20 rays: Number of pass-through rays required to define an object.
Includes maximal objects. This creates a volume intersection rather than a union.
raycombine max cloud1.ply cloud2.ply 20 rays
Keeps the oldest geometry when there are differences in later ray clouds.
raycombine oldest cloud1.ply cloud2.ply 20 rays
Uses the newest geometry when there are differences in newer ray clouds.
raycombine newest cloud1.ply cloud2.ply 20 rays
Conflicts are resolved in argument order, with the first cloud taking priority.
raycombine order cloud1.ply cloud2.ply 20 rays
Concatenates all rays from all input clouds.
raycombine all cloud1.ply cloud2.ply cloud3.ply
For advanced merge scenarios, you can specify a base cloud:
raycombine basecloud.ply min changed1.ply changed2.ply 20 rays
This chooses changed geometry from the base cloud at any differences, using the specified merge type for conflicts.
--output <filename>or-o <filename>: Optionally specify the output file name instead of the default_combined.ply.
The tool generates:
_combined.ply: The merged ray cloud_residual.ply: A cloud containing the differences between input clouds
Concatenate multiple scans:
raycombine scan1.ply scan2.ply scan3.ply
Create minimal union of two overlapping scans:
raycombine min forest1.ply forest2.ply 15 rays
Perform three-way merge with custom output:
raycombine base.ply newest scan1.ply scan2.ply 20 rays --output final_merge.ply
Use order-based priority merge:
raycombine order high_quality.ply medium_quality.ply low_quality.ply 10 rays
- Clouds are not transformed or moved during combination
- The tool infers appropriate voxel sizes automatically
- For more detailed information on merge algorithms and implementation details, refer to the
RayCombinesource code atraycloudtools/raycombine/raycombine.cpp.