mkazhdan / PoissonRecon

Poisson Surface Reconstruction
MIT License
1.55k stars 424 forks source link

a question about adaptive solvers #300

Open cowardmaster opened 2 months ago

cowardmaster commented 2 months ago

Hello professor! I have been reading your papers on Poisson reconstruction lately, and I am particularly interested in the section on adaptive solvers. In the pseudo-code demonstration for the adaptive solver, I understand that each adaptive region constructed is calculated individually, and the resulting values are then returned as coefficients for the shape functions. My question is, since each adaptive region is local, the overall coefficients should be solved based on the entire solution domain. How can each local adaptive region be linked to the global solution? This has been a challenging point for me to understand.Overall, my confusion lies in whether the accelerated part on the multigrid is conducted for the entire solution domain or for each individual adaptive region.Thank you for your help.

mkazhdan commented 2 months ago

It sounds like you're referring to the distributed solver? The clients do perform local updates. However, this is done within the context of a hierarchical solver (where the low-resolution solve is performed on the server). In this context the clients are refining the low-resolution, global solution -- adding the sharp details to the reconstruction.

You're right that if the solver were not hierarchial, and only local updates were used, you would not be able to get the benefits of a global solve, such as hole-filling.

cowardmaster commented 2 months ago

So, compared to the multigrid of a uniform grid, the reason why the adaptive multi-grid solver speeds up the reconstruction is not only because the overall computational load of the adaptive grid is reduced. At the same time, in each level of the multigrid computation, the computational load of the adaptive solver is also reduced. Therefore, the overall reconstruction speed is greatly improved. Am I right? Thanks for your response!

mkazhdan commented 2 months ago

That's right.

Like standard (uniform) multigrid, we have a solver whose complexity is linear in the number of degrees of freedom. But using an adaptive discretization we further reduce complexity by reducing the number of degrees of freedom.

There are other approaches that, for example, discretize the problem over a graded tetrahedral mesh. This is also adaptive and reduces the number of degrees of freedom. But it does not afford the benefits of a hierarchical solver.