mkazhdan / PoissonRecon

Poisson Surface Reconstruction
MIT License
1.59k stars 431 forks source link

Failed to build Open3D's SurfaceReconstructionPoisson.cpp #237

Open jiapei100 opened 2 years ago

jiapei100 commented 2 years ago

@mkazhdan

Hi, can you please take a look at this particular issue? https://github.com/isl-org/Open3D/issues/5479. It looks it's a compatibility issue with current PoissonRecon ?

mkazhdan commented 2 years ago

Do you have a similar problem when using the original source code?

jiapei100 commented 2 years ago

@mkazhdan

  1. Clearly, Open3D is using an old version of PoissonRecon, please refer to Open3D's possionrecon.cmake.

  2. And, I can see there are so many similarties, as well as differences between these 2 files:

PoissonRecon.cpp vs. SurfaceReconstructionPoisson.cpp

Clearly. Open3D is trying to re-implement your PoissonRecon.cpp, in order to take their Open3DData, Open3DPointStream, and Open3DVertex etc...

mkazhdan commented 2 years ago

That's a tough one. I believe I spend a certain amount of time updating the PoissonRecon so that the templated code would be cross-platform. If the new code compiles on your machine but the Open3D code does not, it may make sense to talk to Open3D about updating their integration of the reconstruction code.

jiapei100 commented 2 years ago

@mkazhdan

Yeah, I tried that already. in open3d - geometry - CMakeLists.txt, I commented out SurfaceReconstructionPoisson.cpp. I can proceed until the final stage (every file compiles successfully, but the final link failed. )

For now, I'm trying to make current Open3D compatible with your up-to-date PoissonRecon ...

Hmmmm....

cosama commented 2 years ago

I just downloaded the version here and run it on some of my point clouds and it seems to do better than open3d. I thought I share my own experience looking into this, might help you to figure things out @jiapei100

open3d uses version 12.0. I think their version is at commit hash 03f73754e994eb388de63285d3a2772493168e8a, but they stripped out .git so it is hard to be sure. The only changes I can see is removing the code specific to GCC < 5 in some of the FEMTree* files.

I would really love to see open3d updated to this version and maybe extended to include a few more parameters. @jiapei100 If you have something working please open a merge request over at open3d with some updated code.