I'm trying to understand how to implement an algorithm similar to the one used by Magics' mark surface tool, you can see such behaviour on this video.

Quoting the video: "Basically with this tool you're able to select surfaces, which unlike planes, surfaces take curvature into account."

The first idea that come to my mind to implement something similar was starting by considering the adjacency information of the mesh and consider on the computation the angle adjacent triangle normals. My idea was that if such an angle wasn't on the range [pi/2-tol, pi/2+tol] two adjacent triangles would be "smooth". This thought was too naive and the idea would just work for a very limited of cases and it'd start fail for many of them.

After that, I've spent a little bit of time reading some papers talking about mesh segmentation and it seems this has been an area of research for many years... But before even considering implementing any of these one I'd like to ask here if you knew some basic&good enough algorithm I could implement that could behave in a similar fashion to Magic's.

So yeah, that's my question basically, assuming a triangular mesh that has adjacency information built (ie: you can check adjacent triangles from any given face) and a starting selected triangle, how would you detect the "surface" region associated to it?

Thanks in advance.

  • $\begingroup$ I looked at the video but it's not clear to me why, when using the "mark surface" tool, the selection encompasses the flanges and doesn't go any further. It doesn't seem like it's simply curvature or angle based since why would it grab the flanges in the first place then? I doubt if this can be answered without being more specific about what the desired behavior is. $\endgroup$ Nov 27, 2020 at 6:48
  • $\begingroup$ Nathan, I completely agree with you, I don't have access to magics so the only thing I can do is to speculate... I guess the whole key revolves around the concept of curvature but I don't know 😄. That's why I asked here in the first place in case somebody familiar with a similar algo. $\endgroup$
    – user4801
    Nov 27, 2020 at 9:18
  • $\begingroup$ You might be interested in this question: computergraphics.stackexchange.com/questions/1718/… $\endgroup$
    – lyinch
    Dec 6, 2020 at 22:29


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.