mkazhdan / PoissonRecon

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

The envelope hash no effect on the reconstruction results #233

Closed hzhao1997 closed 2 years ago

hzhao1997 commented 2 years ago

Hi, thanks for you great work! I generate the envelope from visual hull point cloud by running PoissonRecon.exe --in pointcloud_surface.ply --out envelope.ply and then run PoissonRecon.exe --in pointcloud_depth.ply --envelope envelope.ply --out mesh.ply. But, it seems that the envelope hash no effect on the reconstruction results. Below are my inputs and outputs: 00000.zip

mkazhdan commented 2 years ago

The problem is that the surface that you generate in the first reconstruction pass does not include all the points in pointcloud_depth.ply. The implementation is such that if sample points (more precisely, the derived vector field) falls outside the envelope, the envelope is eroded to allow surface to be reconstructed there. (See Section 4.2, Erosion of Exterior.)

hzhao1997 commented 2 years ago

Thanks for your quick and nice reply and now I understand it : )

hzhao1997 commented 2 years ago

Sorry for interrupt again. I have already kept the points of pointcloud_depth.ply inside the visual hull but there are still reconstructions outside visual hull. Is there anything I understand wrong?

[Uploading 00000.zip…]()

hzhao1997 commented 2 years ago

00000.zip

mkazhdan commented 2 years ago

Even if the points are strictly inside the visual hull, the erosion happens based on the vector-field constructed from the oriented points. This tends to be "thicker" than the point cloud itself.

hzhao1997 commented 2 years ago

Even if the points are strictly inside the visual hull, the erosion happens based on the vector-field constructed from the oriented points. This tends to be "thicker" than the point cloud itself.

It is a bit difficult for me to understand this. Could you tell me how to generate an adequate envelope? The generated visual hull needs to be dilated?

mkazhdan commented 2 years ago

In our applications the envelope came from other data (e.g. silhouettes are used to construct a visual/depth hull). In general it's not something you would construct from the point cloud itself. (That is, if the point cloud were good enough to construct a reasonable envelope, you wouldn't need the envelope.)