Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Surface Reconstruction: Poisson removed in 2016.12 #234

Closed
3DLIRIOUS opened this issue Oct 27, 2017 · 4 comments
Closed

Surface Reconstruction: Poisson removed in 2016.12 #234

3DLIRIOUS opened this issue Oct 27, 2017 · 4 comments

Comments

@3DLIRIOUS
Copy link

This is the same issue as issue #199, but with additional evidence and explanation. I apologize for reopening the same issue, however I feel it was closed a bit too hastily the first time, and no one seems interested in responding to comments on a closed issue.

The issue is that the "Surface Reconstruction: Poisson" filter was removed from MeshLab in 2016.12, and the newer "Screened Poisson Surface Reconstruction" is not a direct replacement in my experience and tests. The previous filter does not produce as fine of a result, however it is still quite useful, as it has proved to be much more robust for some meshes, and is much simpler to use (only 4 parameters instead of 10). My specific request is either to bring back the previous filter (in addition to the newer one), or explain how to obtain the same results with the newer filter (if even possible).

Issue #199 was closed with the comment "As explained in the help of the screened poisson filter, you can obtain the old behaviour by setting zero in the Interpolation weight parameter", however as will be shown below, this does not appear to be correct.

The first mesh considered is a random spherical point cloud generated using the filters "Points on a Sphere" and "Compute normals for point sets", and is attached. Per the instructions, the Interpolation Weight in the new filter is set to 0 to try to obtain the same results as the old filter. The Octree Depth and Reconstruction Depth are both set to 8, and the rest of the parameters are left as the defaults, as it is not clear what to set them to so as to make the filters as similar to each other as possible.
screenshot 6

screenshot 7

As can be seen, the results are nowhere near equivalent for this mesh. The newer filter produces a much denser and smoother mesh, however it also has two holes. The older filter produces a coarser mesh, but at least it is watertight.

For a perhaps more realistic example, we will consider bunny10k.ply, included in the MeshLab source. The same parameters will be used as in the previous example.

screenshot 8

screenshot 9

The first thing noticed is that the newer filter fails to execute, however the older filter executed fine. This is what is meant in part by the statement that the newer filter is not as robust as the older. After checking the "Pre-Clean" option the newer filter executes, with the results shown below. While the newer filter does produce a nice mesh, it is certainly not equivalent to the results of the previous filter, as it contains nearly twice as many vertices.

screenshot 12

I believe that both filters still have valid use cases, and so implore you to please consider adding the "Surface Reconstruction: Poisson" filter back into the next version of MeshLab.

@3DLIRIOUS
Copy link
Author

point_cloud.zip

@Heinz-Loepmeier
Copy link

I agree that the old filter is more robust and I happen to have the exact same problems you mentioned.
Non solid meshes and alot of error messages for not so perfect meshes (can be solved with additonal filters, but on the older poisson you don't have to). Preclean on the newer won't help either.

Right now I'm only using the newer filter to preserve vertex colors, which is a great feature.

@sonumathur
Copy link

hello how to surface generated in meshlab using ply file,please explaine with example

@mcallieri
Copy link
Member

For the last time. NO.
What was removed is the older version of the current filter, that was ABANDONED by the authors themselves YEARS ago.
Every other software out there switched to the newer version.
It had severe memory limitations and it DEFORMED the sampled geometry in uncontrollable ways.
The check on invalid normals is there to let you know there are ERRORS in the input data. It's not a matter of being "more robust", it is a matter of being clean and mindful of the data you are working on.

WE DO NOT WANT TO RETURN TO THIS INSANE REQUEST ANYMORE.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants