3

I want to find the sharp edges of any given mesh. For reference, here is a mesh of a chair:

enter image description here

It's clear that the border of the back of the chair is an edge, as are the four curves that outline the arms and legs, etc.

I would like to sample points along these edges. Is there a known algorithm for doing this?

Couple approaches I thought of:

Triangle edge detection

Consider every pair of connected points in the mesh. Each of these segments should be part of two triangles. If the angle between the surface normals of the two triangles is wide enough, that segment should be considered an edge.

Point cloud edge detection

With open3d, I can easily convert the mesh into a point cloud, where each point has a surface normal. I could potentially search the point cloud for sudden changes in the surface normals. Though I think that could get fairly complex, as I'd have to find the nearest neighbors of every point.

0 Answers0