Forum

Author Topic: Managing RAM for meshing with CloudCompare  (Read 6388 times)

bigben

  • Sr. Member
  • ****
  • Posts: 406
    • View Profile
Managing RAM for meshing with CloudCompare
« on: June 28, 2015, 04:06:03 PM »
Hi All

Apart from a lack of speed, my home system only has 8Gb of RAM and meshing can be a great challenge, especially when I can still generate relatively large point clouds.  I've found CloudCompare to be a very useful tool for both creating an evaluating meshes and have done a bit of testing to try and get my head around RAM usage of the poisson surface reconstruction and predicting what settings will exceed my RAM requirements.

My source point cloud had 34.9 million points and would freeze my computer when trying to generate a mesh with Photoscan. I exported as a PLY (no colours), loaded into CloudCompare and ran a series of  poisson recontructions with a range of Octree depth and Full depth settings, using Windows task manager to track peak RAM usage (and monitor RAM usage in case it looked like it was going to blow up). Results below Octree depth = 8 and Full depth = 8.

I'm not sure what settings Photoscan uses. I've seen Octree depths of 13 and 14 appear in the console, but nothing for full depth.  Judging by the appearance of meshes and the time it takes to crash on large point clouds I'm guessing it's 9.

I still need to do some testing with different size point clouds to try and get a handle on expected face counts from the size of the point cloud, but this is what I've got so far:

1. Start with slightly lower settings and monitor RAM usage.  If polygon count is too low for what I want, increase octree depth IF peak RAM usage is <33% of total RAM.  Face count increases about 3-3.5X for each Octree depth

2. Once face count is high enough, increase Full depth to get a better mesh IF the mesh isn't exhibiting too much noise AND peak RAM usage is <50% of total RAM. Face count does not increase much but fine details are improved.

In this test case, I got up to 28.5M faces on an awesome looking mesh.  These observations fit in with what I've got out of a 32Gb system. 

sc

  • Jr. Member
  • **
  • Posts: 59
    • View Profile
Re: Managing RAM for meshing with CloudCompare
« Reply #1 on: November 27, 2015, 01:29:25 PM »
Sorry for bumping this, but I only discovered it just now. How is the processing time in CloudCompare compared to Agisoft? On a workstation with 64gb RAM I usually split the chunks in to parts if the dense cloud goes over 100million points to save processing time and I can spread the mesh generation out to be processed on our server.

bigben

  • Sr. Member
  • ****
  • Posts: 406
    • View Profile
Re: Managing RAM for meshing with CloudCompare
« Reply #2 on: November 27, 2015, 02:10:58 PM »
Without knowing the exact settings used by PS in comparisons I've done... going by similar meshes (detail and polygon counts) it "feels" about the same.  But with CloudCompare you have access to the settings so you can lower them to get a quick preview mesh and optimise them if you're hitting your RAM limit.  This can save a lot of time if you're not after an insanely detailed mesh.

May have to do some comparisons with face count of 0 in PS.

Having vertex density as an option for gradual selection on meshes in PS would be really nice.  It's one of the reasons I often use CloudCompare even if I have enough RAM as it provides very nice control over edge cleanup.

bigben

  • Sr. Member
  • ****
  • Posts: 406
    • View Profile
Re: Managing RAM for meshing with CloudCompare
« Reply #3 on: November 27, 2015, 02:18:45 PM »
... and on a related note. I use Photoscan for decimating meshes as it's the fastest out of the software I have available for that.

sc

  • Jr. Member
  • **
  • Posts: 59
    • View Profile
Re: Managing RAM for meshing with CloudCompare
« Reply #4 on: November 27, 2015, 03:39:28 PM »
Okay :) if the processing time is around the same, there isn't really worth using additional software for me at least. Hopefully we can delegate the mesh generation with network processing in a future update