isl-org / Open3D

Open3D: A Modern Library for 3D Data Processing
http://www.open3d.org
Other
11.22k stars 2.28k forks source link

How to speed up TriangleMesh::CreateFromPointCloudBallPivoting function? #6272

Closed Cassius0924 closed 1 year ago

Cassius0924 commented 1 year ago

Checklist

My Question

I'm working on a project that processes large point clouds (over 1 million points) and needs to frequently create triangle meshes. The current TriangleMesh::CreateFromPointCloudBallPivoting implementation is too slow for my use case.

I noticed that many other functions in Open3D have tensor-based implementations (like ICP registration) that utilize GPU to accelerate computation. It would be great if we could have a GPU-accelerated version of ball pivoting using CUDA or tensors.

theNded commented 1 year ago

Unfortunately, this approach is not designed for parallel processing, as the operations on a point will directly affect its neighbors, leading to race conditions. In comparison, Poisson reconstruction is relatively easier to parallelize. For instance, there is such a repo (https://github.com/DavidXu-JJ/PoissonRecon_GPU). At current we do not have bandwidth to incorporate it, so you may want to make use of the repo indepedently as an option. Hope it helps!