Page 1 of 1

CloudCompare deviation analysis / distance mapping

Posted: Thu Feb 06, 2020 1:30 pm
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

Re: CloudCompare deviation analysis / distance mapping

Posted: Thu Feb 06, 2020 9:18 pm
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).

Re: CloudCompare deviation analysis / distance mapping

Posted: Sun Feb 09, 2020 8:08 pm
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