mkazhdan / PoissonRecon

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

Invalid option : --normals #309

Closed mdenharder closed 1 week ago

mdenharder commented 2 weeks ago

Hello, I want to use the PoissonRecon.exe to get a mesh from a point cloud file I have. The result looks good, but there are no normals in the .ply output file. As I understand it, this should be possible with the --normals option? But, if I add --normals to my code, I get an error indicating that --normals is an invalid option. I have tried with different versions of the executable-downloads, but get the same result.

image

this is the .cmd code i use to call the function cd /D %PathPoissonRecon% PoissonRecon --in %AscFile% --out %OutputFile% --depth 10 --normals --verbose

Did I miss something somewhere ? Thanks for any help

mkazhdan commented 2 weeks ago

Unfortunately, you cannot reconstruct without normals. There is a significant amount of research aimed at estimating (properly signed) normals so that the point cloud can them be reconstructed. But the methods are not incorporated with the PoissonRecon code.

mdenharder commented 2 weeks ago

Are you referring to the input file ? If so, I'm sorry, I must have phrased my question incorrectly. My asc. input cloud has normals. This is what the .asc file looks like

image

The reconstruction itself seems to work fine. If I call the PoissonRecon code with PoissonRecon --in %AscFile% --out %OutputFile% --depth 10 --verbose, i get no error message at all and the .ply output file that seems to correspond quite well with my data.

But the created .ply output file seems to have no normals. Its header reads: ply format binary_little_endian 1.0 element vertex 739802 property float x property float y property float z element face 1479378 property list int int vertex_indices end_header

if i open it with CloudCompare I get image

I can reconstruct the normals on the mesh afterwards with CloudCompare, but i wanted to know if its possible to do it during the reconstruction to get more precise data ? In the documentation about the executables, --normals is listed as an option and seems to be what I'm looking for, but if i add --normals to my code, I get the error message i mentionned before, specifying that --normals is an invalid option. How can I correctly implement the --normals flag listed in the executables documentation ?

[--normals] Enabling this flag tells the reconstructor to output vertex normals, computed from the gradients of the implicit function.

mkazhdan commented 2 weeks ago

Ah. My apologies. The option for normal output was removed. (Estimating from output geometry seemed no worse than what we were computing.)

Will remove the flag from the write-up if it's still there.