houfei0801 / ipsr

90 stars 14 forks source link

Custom data never converge #2

Closed drsmartbot closed 1 year ago

drsmartbot commented 1 year ago

Hi Thank you so much for this repo. I am trying this repo on my project. I am trying to give input as 3d point cloud with default command: ./ipsr --in data/my_pointcloud.ply --out output/output.ply

I tried changing depth, neighbors, iters but not good result. Most of the time normals variations are going upto 1.7 even for 30 iterations Its outputting like a dome on the top. output

I tried with few datasets and all have similar dome. I even tried to increase iterations to 100 but still dome is there.

Do you know what am I doing wrong.

My input 3d point cloud header information:

ply
format binary_little_endian 1.0
element vertex 6961132 (just an example)
property float x
property float y
property float z

Output header is:

ply
format ascii 1.0
element vertex 747677
property float x
property float y
property float z
element face 1494050

Thank you in advance.

houfei0801 commented 1 year ago

Hello, is your point cloud a watertight model? Poisson reconstruction only works for watertight models. It is possible to result in a dome given an open model.

drsmartbot commented 1 year ago

Hi thank you for your reply. Yes, when I run screened poisson reconstruction then I get dome at the bottom.

Screenshot from 2023-04-19 20-58-05

But when I run ipsr (your repository), then the dome is on the top.

Is there something reversed? Thank you in advance.

houfei0801 commented 1 year ago

Since Poisson reconstruction only reconstructs closed models, a dome is generated if you reconstruct an open model. We don't have special design to control the dome and iPSR also uses screened Poisson surface reconstruction to generate the surface. Different normals may lead to different results.

drsmartbot commented 1 year ago

Thank you for your response! I will try to play with the code then.