I recently gave formations about open source tools for point clouds, and a large part of it was about CloudCompare.
I have been using CC for 5 years and I am astonished of the result :
- an incredibly stable and efficient software (really, no more crashes on core functionalities!)
- all basic needs well covered
- a lot of advanced functionalities
- some bonus, such as powerful plugins.
- just take a look at meshlab to get an idea of how much and how well CC as grown!
As I covered almost all of the functionalities of CC in few days (several times),
I noticed some small problems and potential for improvements.
This is not a request list at all, more a way to give some feedbacks.
**** Bug ****
Version 2.8.1, win 10 64b, graphic card is ati 470 (2016), driver up to date.
#dealing with lines created by Tools/Segmentation/extract section
The lines width can be enlarged by going from "default" to for example "8".
Bug is that when the line lose focus (selecting another point cloud for instance),
and then the line is selected again,
the line width chose "default", even if the line width is actually still "8" (and it is displayed with the correct "8" width".
##Dealing with the Tools/projection/unroll
This is the only tool of its kind that is destructive (the original point cloud is transformed).
This is both surprising and dangerous (imho).
The tool should make a clone of issue a proper warning.
###About the QAnimation pluggin:
It is a great idea!
On my PC (graphic card is Graphics Chipset Radeon (TM) RX 470 Graphics),
I can export frame by frame but the produced video is rubbish (full duration, but frozen on first image or starting seconds too late).
(also the case on 2.9 beta)
####About the Tools/segmentation/cross section
On my PC (CC version 2.8.1 and 2.9 , I have a RX 470 Graphics, win 10 64b)
The colours are not well displayed for the box handlers (all colours are black).
**** Small Improvement ****
# Tools for defining ground plane
Tools to define 3 ground points and transform the pointcloud accordingly.
This tool is fantastic. The only weakness is that the point cloud may end up being upside down.
I suggest to improve it a little bit by using the order the 3 points have been clicked to define the orientation of the model (after all, 3 points in a given order define an oriented triangle, whose normal could become the Z axis to be.)
I would suggest that when the transformation is small the order of point picking is not used, so previous users are not confused by a new behaviour.
##About scalar field gradient
This is an extremely useful tool.
It could be much more powerful if the user could define the size of the neighbourhood (sphere radius or knn) to compute the gradient.
Then it could be fine tuned to detect interesting signals in the point cloud.
This is again fairly minor, but a graphical representation for the view port would be extremely helpful.
I would suggest to add a mesh to the viewport, having the traditional form of the camera field of view (square with a reverse truncated pyramid.
Viewport may also have another option when right clicking on them in the DB tree, so as to move the camera to the selected viewport.
####About Axis names
An option displaying the name of the axis along the colours would be most helpful for user that are not so familiar with 3D software.
#####Tools/Segmentation/cross section projection on user defined axis
This tool allow to visually create a fine tuned cross section that is not aligned with regular axis using the box handler (especially the rotation handler).
This is super fine, but such cross section can not be exported.
Instead, when exporting the section, it is again the section along the regular axis that are considered.
I don't know if it is a bug or by design, but at least adding an option to export section along the newly defined bounding box axis would be extremely useful.
######About unrolling / projection
For the moment there is little option to adapt a point cloud geometry regarding to a mesh.
You can use the tools/projection/unroll so as to virtually create a cone or a cylionder, and project the points on it, then unroll it.
Given that there are several tools that produces simple geometric primitives (Qransac, plane fitting, etc),
it would be most useful to have an uroll tool that takes as input a point cloud and a geometric primitive.
For cylinder, tor, cone it would be unrolled. For plane it would be simple projection.
From a user interface perspective, it would be much easier to use than entering the parameters of the cone/cylinder manually as it is currently the case.
####### Better interface for the scissor tool (Edit/segment).
The scissor tool is certainly one of the most useful of all cloud compare,
I fell it is virtually used on every point cloud.
When having to perform large work with it, its interface is cumbersome, because so much clicks are needed on the toolbar .
So here is my suggestion:
when in segment mode
-left and right click stay the same
- middle click (click on mouse wheel) inside or outside the polygon acts as a shortcut and defines if the points to consider are those within or outside the polygon (segment in/segment out :
- the pause mode no longer exists
- when keeping "Alt" pressed, segment stuff is disabled, and the camera is free to move
- when releasing "Alt", we are free to create polygons and so
####### Consistent behaviour of "Esc" touch
For the core tools (all of Edit menu basically), the "Esc" touch should close the tool.
This is not the case for some, such as
- normals /compute normals ;
- scalar field : compute stats param ; bilateral filter ; filter by value ; arithmetics ;
To be faire I also think all the feature from the Tools menu should also be exited when pressing "Esc"
It seems the problem is about focus of the concerned windows.
**** Major Improvements (more for ideas really) ****
#The Canupo pluggin is a great step forward as I feel classification is the last major functionality that CloudCompare lacks.
Being a researcher in point cloud, I'm certainly biased, but I feel Canupo should only be a first step.
One of the strength of CloudCompare is its ability to deal with Scalar field.
At the very least the classifier should be able to use scalar field, and a state of the art classifier such as the random forest should be used.
In an ideal world the user could chose from many available descriptors (both geometric and on scalar field).
## The scalar field arithmetic
Is super messy for the moment. In an ideal world, the user could write any expression in python combiing scalar field with classical operator and math function.
### Transparency for point cloud
Sometimes the ability to add transparency ot a point cloud (for instance setting the parameter between 0 and 1) would be useful.
I often compute the Ambiant occlusion with the plug-in, then I usually want to mix this with the scalar field I'm interested in.
For the moment combining a scalar field of interest plus ambient occlusion is cumbersome, and this can't be done with the shadder version as it introduces blur).
####Super duper python bindings
OK, I admit this is fantasy, but I feel that much effort is made toward enabling command line usage of CloudCompare,
which may be a waste, as python bindings would replace with great benefits these command lines.
(benefits would be clarity, way to exchange data, exception handling, pipelines, etc.)
Plus, I think it is clear that the scripting is going much less toward command line than toward proper script langage (such as python ! )