CloudCompare / CloudComPy

Python wrapper for CloudCompare
Other
283 stars 40 forks source link

cloudComPy render to file #49

Open SowisLiuYiming opened 2 years ago

SowisLiuYiming commented 2 years ago

Is there an interface to operate below in cloudCompy?

GUI Display -> render to file image

prascle commented 2 years ago

Hello, As I understand it, you want to script snapshots of a 3D scene as you can with the CloudCompare GUI with the Render to file menu action, after selecting what to display, choosing a viewpoint, and, perhaps, all the display options the GUI offers. In CloudComPy's design, the Python wrapper does not take into account the GUI layer, and CloudComPy does not care about a 3D view, a viewpoint, what is displayed... No GUI Display menu actions are available in CloudComPy. Taking into account in CloudComPy all the possibilities offered by the Display menu of the CloudCompare graphical interface implies a big redesign work, with many modifications in the CloudCompare sources. This is something I had imagined to do, but not in the near future. Nevertheless, I can check if it is possible to wrap a simple snapshot function with a virtual 3D view, without writing too much C++. If you want to specify your use case, I can check, but no guarantees! Regards, Paul

SowisLiuYiming commented 2 years ago

Hello, Thank you for your reply. My requirement is to snapshot a bin file.The output format is unlimited. if you can check if it is possible to wrap a simple snapshot function with a virtual 3D view.I would appreciate it very much. Regards, Leo image

jarosobu commented 1 year ago

Hello,

I have series of point clouds (several hundred), generated from several time-lapse cameras. I would like to make a time-lapse video from particular view point. In this case Render to File in CloudComPy would be very useful. So any update on this issue would be very appreciated from my side. Regards

prascle commented 1 year ago

Hello, I have a quick and dirty development on a branch on this problem, able to do the job, when it doesn't freeze the system completely! I need to find a clean way to do it, hoping not to rewrite too much code... Paul

kxd195 commented 1 year ago

Any update/progress on this "render to file" feature? One of the features I was hoping to do with CloudComPy was to trigger generation of 3D renderings to BMP/JPG when new xyz files are detected from data filesource.

prascle commented 1 year ago

Hello, for your information, the render to file feature has been added in the May 24, 2023 version. Please don't hesitate to ask for more information or improvements. Regards, Paul

kxd195 commented 1 year ago

@prascle Thanks for that upgraded version! I've tested it out and it works well.

kxd195 commented 1 year ago

@prascle a "nice to have" would be the ability to paint/highlight a difference area between two point clouds in different colours. We currently use CloudCompare to manually generate the render for two point clouds where a section of the cloud has changed in volume. Because there's no function to do so, someone will manually load the render in Photoshop and highlight/paint the area that has changed. This would be a nice option for the render to file feature.

lmweidner commented 1 year ago

@prascle a "nice to have" would be the ability to paint/highlight a difference area between two point clouds in different colours. We currently use CloudCompare to manually generate the render for two point clouds where a section of the cloud has changed in volume. Because there's no function to do so, someone will manually load the render in Photoshop and highlight/paint the area that has changed. This would be a nice option for the render to file feature.

Hi, we work on similar highlighting of volume changes (end up using powerpoint as a final product so it's fine anyways).

I just wanted to point out that I recently discovered PyVista has some very very nice visualization tools for point clouds that I find very easy to adjust and manipulate. It even has EDL shading like CloudCompare. It has been able to satisfy our needs for generating automatic images of point clouds that look similar to CloudCompare. PyVista also seems to be working fine in the CloudComPy environment, so I can use both in the same scripts.

Best, Luke

prascle commented 1 year ago

Hi @kxd195, I am sorry, i did not answer to your post. I am not sure I understand your problem correctly, but, if you are able to compute a scalar field representing what has changed, it is possible to render this scalar field in the render function. In my example test051py I use cloud methods such as setCurrentDisplayedScalarField or showNormals to build the image. If you think something is missing, let me know: if you are able to render manually with the CloudCompare GUI, tell me what you are doing, I will try to add what is missing.

Best, Paul

kxd195 commented 1 year ago

@prascle @lmweidner what we do is we have backhoes that excavate/dig the ground. Every 6 hours, we take a mapping of the work area and it generates the point cloud for us. Manually using CloudCompare, we can see the volume difference between the current point cloud vs the one 6 hours ago, which gives us the amount of area/volume that has been excavated.

Now we're trying to automate this process using CloudComPy, so that we can generate not just the 3D render, but we'd like to "paint" each 6hr excavated area a different colour. We understand that we'd most likely generate a 3D render of two point clouds at a time, and then merge these renders together (each render with a different colour), so that for example, we can see over a 24hr period, you can see which areas has been excavated and based on colour, see which area was done for each 6hr period.