CloudCompare deviation analysis / distance mapping

Feel free to ask any question here
Post Reply
Vlad_s
Posts: 4
Joined: Thu Feb 06, 2020 1:21 pm

CloudCompare deviation analysis / distance mapping

Post by Vlad_s »

Hi,

First of all, thank you creating such a great open-source software tool for point cloud processing and visualization! I have used it for a few years now during my PhD studies and have found it to be an indispensable part of my software toolkit for point cloud processing and visualization tasks.

So, the reason I'm here is that I would like to describe in detail the algorithm used by CloudCompare to compute the mesh/cloud distance mapping visualization (what I refer to as Deviation Analysis) in one of my thesis chapters.

I kindly ask for the following information:

1) A citable academic paper where the distance mapping algorithm was first published / used, preferably by the authors of the software. I am aware that the algorithm is based on a variant of Iterative Closest Point (ICP) while using an octree data structure to accelerate the distance computations between points and mesh triangles (I looked at the source on github: https://github.com/CloudCompare/CloudCo ... nTools.cpp )

2) A basic explanation of how the implemented algorithm works for mesh/cloud distance mapping (focusing on the CloudCompare implementation specifics).

I hope somebody can point me in the right direction.

Many Thanks in advance!

Vlad
daniel
Site Admin
Posts: 7623
Joined: Wed Oct 13, 2010 7:34 am
Location: Grenoble, France
Contact:

Re: CloudCompare deviation analysis / distance mapping

Post by daniel »

1) Warning, the distance computation algorithm is not derived from ICP at all. On the contrary, it's the implementation of the ICP algorithm in CloudCompare that uses the octree and the capacity of CloudCompare to compute C2C or C2M distances...

And as for the article, there's one main article which describes the C2C algorithm (and the octree structure): https://www.researchgate.net/publicatio ... er_scanner

And then the C2M version is a kind of variant where we compute distances to triangles instead of distances to another cloud. There are no article that describes it. An article that describes a similar algorithm is 'Metro', by Cignoni et al: http://vcg.isti.cnr.it/publications/papers/metro.pdf

2) The algorithm relies on a gridding technique, where the triangles are intersected with a regular 3D grid. In each cell of the grid, we store pointers to the intersecting triangles. This is a simple acceleration structure that speeds the query for the nearest triangle up. And the point to triangle distance algorithm is quite standard (see https://www.geometrictools.com/Document ... angle3.pdf for instance).
Daniel, CloudCompare admin
Vlad_s
Posts: 4
Joined: Thu Feb 06, 2020 1:21 pm

Re: CloudCompare deviation analysis / distance mapping

Post by Vlad_s »

Hi Daniel,

Thank you very much for clarifying this for me and for answering my questions. I will have a look further at the resources you linked.

Kind Regards,

Vlad
Post Reply