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

GEO::mesh_make_atlas() very slow #38

Closed
cdcseacave opened this issue Nov 16, 2022 · 11 comments
Closed

GEO::mesh_make_atlas() very slow #38

cdcseacave opened this issue Nov 16, 2022 · 11 comments
Labels
enhancement New feature or request

Comments

@cdcseacave
Copy link
Contributor

I finally was able to call and extract all data I need from GEO::mesh_make_atlas() however when trying it on any real mesh (number of faces > 500k) the method becomes very slow, basically unusable in any real wold application. Is there something I do wrong in compiling the library or the function in known to be slow?

Update: I tested the functionality in GraphiteThree and same problem.

@BrunoLevy
Copy link
Owner

That's because we need to pre-segment the mesh. For now, the algorithm tries to parameterize each part, then iteratively splits the parts if there were overlaps or too much distortion, so for a large mesh it will do many many chart parameterization / splittings. I'll add pre-segmentation shortly (I have it somewhere ...)

(The current version is for a scenario where you first generate a low poly mesh from a high poly one, then parameterize the low poly mesh, and generate normal maps, this is why there was no performance issue / need to presegment).

@cdcseacave
Copy link
Contributor Author

sounds great, it would be of great help if you can add that missing part too; thank you!

@BrunoLevy
Copy link
Owner

Just for my own curiosity, what is your usage scenario / application ?

@cdcseacave
Copy link
Contributor Author

mesh texturing in a photogrammetry pipeline like OpenMVS

@cdcseacave
Copy link
Contributor Author

I also get a lot of messages like this, is it normal?

| o-[ABF++       ] Warning: Could not initialize SuperLU extension            |
OpenNL error in nlOpenDLL(): Not implemented

@BrunoLevy BrunoLevy added the enhancement New feature or request label Nov 28, 2022
@BrunoLevy
Copy link
Owner

Some news:

  • New mesh segmentation is scheduled for v1.8.3 (will be there before the end of this year if everything goes well)
  • About nlOpenDLL() error, on which OS are you running ?

@cdcseacave
Copy link
Contributor Author

Thank you for the update!
I implemented my own mesh segmentation and parametrization, so no hurry on this.
I'm testing on Windows 10 x64 with vcpkg port (I was not able to build from the git sources). So it would be great if you have a look at the vcpkg port and update it: https://github.com/microsoft/vcpkg/tree/master/ports/geogram

@BrunoLevy
Copy link
Owner

I have no experience with vcpkg, but I'll take a look ...
What happened when you tried to buid from git sources ?
Did you follow the protocol explained here: https://github.com/BrunoLevy/geogram/wiki/compiling_Windows ?

@cdcseacave
Copy link
Contributor Author

I do not remember what went wrong, but I tried now again the instructions in your link and it worked
though it would be even better if you can integrated it in vcpgk

@BrunoLevy
Copy link
Owner

Fixed in v1.8.3rc that has new mesh_make_atlas() function
(github repo up to date if you want to test)

@cdcseacave
Copy link
Contributor Author

thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants