Calculate Volume from Signed Distances Scalar Field?
Calculate Volume from Signed Distances Scalar Field?
Hello! I was wondering if there is a method for calculating volume only use the signed differences scalar field. I have a point cloud representing a fairly uneven and curved surface. I created a convex hull of the cloud and calculated the distances between the two. I would like to calculate the volume of this gap, but only for small sections of the larger cloud / convex hull assemblage. There are holes between the convex hull and cloud because they are cut out of the larger models. I used Poisson Reconstruction to create a solid mesh to use for volume calculation, but this creates strange artifacts and is more labor intensive. It would be great to simply use the scalar field. I've attached a photo to show the cloud surface with the scalar field, and another with the cloud and convex hull section.
- Attachments
-
- Convex Hull mesh overlaid on cloud
- Screenshot 2023-02-09 143904.png (31.44 KiB) Viewed 3253 times
-
- Cloud with C2M scalar field
- Screenshot 2023-02-09 143752.png (239.06 KiB) Viewed 3253 times
Re: Calculate Volume from Signed Distances Scalar Field?
Sadly it's not possible in an accurate way.
The M3C2 plugin tries to estimate the volume (I believe in the console) at the end of the distances computation, by summing the individual volumes of the core points search cylinders (= scale as radius * distance as cylinder height). But still, the result is approximative as it depends on the cloud sampling.
The M3C2 plugin tries to estimate the volume (I believe in the console) at the end of the distances computation, by summing the individual volumes of the core points search cylinders (= scale as radius * distance as cylinder height). But still, the result is approximative as it depends on the cloud sampling.
Daniel, CloudCompare admin
Re: Calculate Volume from Signed Distances Scalar Field?
Can you share your pc or similar pc?
Re: Calculate Volume from Signed Distances Scalar Field?
Thanks for your response Daniel. M3C2 does not seem to display the volume in the console and I've had trouble estimating the volume using the cylinders volume, probably because of so much overlap. The result is far too large. I have noticed though that if I use C2M and multiply the average distance by the surface area of the mesh (the convex hull) it produces a fairly close result to the Poisson Reconstruction volume (strangely the surface area of the convex hull is more than the surface area of the original model). Can I ask if you can explain, or point to an explanation, of how the volume calculation for solid meshes works (edit > mesh > measure volume)? Is that method always accurate?
I am working on Win10 Dell XPS 15 system.
I am working on Win10 Dell XPS 15 system.
Re: Calculate Volume from Signed Distances Scalar Field?
The 'Edit > mesh > measure volume' method only works with a closed mesh. And there shouldn't be any topological issue of course.
Daniel, CloudCompare admin
Re: Calculate Volume from Signed Distances Scalar Field?
I have same question ...Can I ask if you can explain, or point to an explanation, of how the volume calculation for solid meshes works (edit > mesh > measure volume)? Is that method always accurate?
Which algorithm is used ?
Re: Calculate Volume from Signed Distances Scalar Field?
In the code, I wrote:
//see "EFFICIENT FEATURE EXTRACTION FOR 2D/3D OBJECTS IN MESH REPRESENTATION" by Cha Zhang and Tsuhan Chen (2001)
//We compute the (signed) volume of the tetrahedron defined by each triangle and the origin
//see "EFFICIENT FEATURE EXTRACTION FOR 2D/3D OBJECTS IN MESH REPRESENTATION" by Cha Zhang and Tsuhan Chen (2001)
//We compute the (signed) volume of the tetrahedron defined by each triangle and the origin
Daniel, CloudCompare admin