CGAL / cgal

The public CGAL repository, see the README below
https://github.com/CGAL/cgal#readme
Other
4.99k stars 1.39k forks source link

Why the Poisson reconstruction of the Hopf torus is so ugly? #6224

Open stla opened 2 years ago

stla commented 2 years ago

Hello,

Here is a beautiful Hopf torus:

HopfTorus

It has 20000 points. When I run the Poisson reconstruction on it (with poisson_surface_reconstruction_delaunay, default parameters), I get this monster:

HopfTorus_poisson

I tried to change the parameters but I always got such an output.

afabri commented 2 years ago

Can you please provide the point set.

stla commented 2 years ago

Hello @afabri

Here it is.

afabri commented 2 years ago

The point cloud is very sparse image

afabri commented 2 years ago

The normal computation will already have a hard time to produce something reasonable.

stla commented 2 years ago

Ah ok. Will try to construct this point set in another way.

sloriot commented 2 years ago

Actually, if you are computing the point set yourself, maybe you can create the normal at the same time? I don't know what is your setting. Also let me point out this package in case you want to mesh an implicit function.

stla commented 2 years ago

Wow, I have this points cloud now. The Poisson reconstruction is still ugly but the Advanded front surface recontruction is perfect. hopfpoints

stla commented 2 years ago

@sloriot Even with the "true normals", the Poisson reconstruction is ugly.

stla commented 2 years ago

Actually, if you are computing the point set yourself, maybe you can create the normal at the same time? I don't know what is your setting. Also let me point out this package in case you want to mesh an implicit function.

Thanks, very interesting. The solid Möbius strip is an implicit surface. I have a ton of other ones.

stla commented 2 years ago

I tried the "uniform remesh" feature of VCG. The points cloud look nice, highly less sparse:

hopfpointsuniformremesh

However, when I run the Poisson reconstruction on these points, two lobes look nice while the third one is monstruous:

hopfpointsuniformremeshshade

That is strange, since the point set is rather symmetric.

stla commented 2 years ago

Ah, there's an option multisample and the Poisson torus looks perfect:

hopfpointsuniformremeshmultisample

stla commented 2 years ago

I've tried the pca normals.

hopfcgalnormals

(I'm talking about the Poisson reconstruction)

stla commented 2 years ago

Here are the data if you want to take a look.

uniformMesh.txt

stla commented 2 years ago

FYI, it works well with reconstruct_surface of the PyVista library. I don't know what is the algorithm used.

hopfcloud

hopf_reconstructed_pyvista