How does Meshoptimizer classify vertices before simplification? #693
Unanswered
daniilvinn
asked this question in
Q&A
Replies: 1 comment 3 replies
-
The likely cause is that when merging meshlets, you need to:
If most vertices are classified as border, this is unusual but could mean that your indices are incorrect - not pointing to vertices with correct positions perhaps - and the simplifier can’t find adjacent triangles because of this. This also would happen if you don’t do 1 well; if you don’t do 2 well you will get seam or locked vertices. meshoptimizer/src/simplifier.cpp Line 208 in b8843d9 |
Beta Was this translation helpful? Give feedback.
3 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Hello!
I develop Nanite-like Virtual Geometry system, and I need to build a hiererachy of meshlets. On each step I group meshlets, merge their indices and simplify with locked borders.
However, I am struggling to implement it properly - for some reason, simplifier gets stuck really often.
I found out that there are 5 kinds of vertices - complex, manifold, seam, border and locked vertices. With locked borders on, every border vertex becomes locked vertex.
Also I found out that when I try to simplify Standford's Bunny mesh (fully connected mesh), at last simplification passes I get only 1 meshlet group which consist of 2 meshlets. After debugging, I found out that vertex classificator still classifies some vertices as border ones (meaning that they are locked). It is unexpected behaviour from my point of view - how can it find borders even though that mesh is fully connected and I have only 1 group (entire mesh)? Shouldn't borders be attribute seams?
This behaviour leads to simplifier getting stuck. I also tested on Happy Buddha's mesh and it gets stuck much earlier, so I can't really simplify it properly. it just fails to simplify -> I reregister meshlets which failed to simplify -> it repeats for next pass.
Also I don't understand what "complex" and "manifold" vertex kinds are and how do "border" and "seam" kinds differ?
Beta Was this translation helpful? Give feedback.
All reactions