Mesh filter by value, "too" agresive

If you are allergic to bug trackers, you can post here any remarks, issues and potential bugs you encounter
Post Reply
PablerasBCN
Posts: 296
Joined: Sat Jan 20, 2018 1:57 pm

Mesh filter by value, "too" agresive

Post by PablerasBCN »

Hello,

I meshed a point cloud, I computed verticallity and I whanted to separate the mesh using it.

Image


After filtering the data, the border triangles on the wall are lost

Image

this is testing 2.13.alpha, but was like that in the previous stable version too.
daniel
Site Admin
Posts: 7717
Joined: Wed Oct 13, 2010 7:34 am
Location: Grenoble, France
Contact:

Re: Mesh filter by value, "too" agresive

Post by daniel »

Yes, that's because CC is not able to do anything smarter than remove the whole triangle if one of its vertices has a value outside of the filtered range.

One option would be to convert the mesh to a dense cloud, then filter the resulting points, and eventually re-create a mesh based on the filtered points (with 'Poisson Reconstruction' for instance). But that's a bit tedious...
Daniel, CloudCompare admin
PablerasBCN
Posts: 296
Joined: Sat Jan 20, 2018 1:57 pm

Re: Mesh filter by value, "too" agresive

Post by PablerasBCN »

thanks for explaining what triggers the issue.

I already have the dense cloud, since the mesh is generated from the dense cloud.

Yet, the problem of doing as you say, is that the meshes will not have exactly same edges and there may be gaps, and for sure intersections.

As it is now, I can´t think of a solution either since the selection of faces is not done at face level but at vertex as you pointed.

The only thing I can figure out, to be modified in code, I mean. ( I know the todo list is infinite). Would be somethink like to have an array of all the faces and when filtering by value, every face goes one way or the other. I think valid criteria would be that the face that has 2 vertex in one side of the filter criteria, then that face goes there.
PablerasBCN
Posts: 296
Joined: Sat Jan 20, 2018 1:57 pm

Re: Mesh filter by value, "too" agresive

Post by PablerasBCN »

so, I'm again/still struggling with this.

I understand the base issue, I think there is an easy solution. You leave the first split criteria as is.

Since we're dealing with faces, and we're starting with a known number of faces, each, I understand will have a face id, hence if you do an array of face id's of all of them, once you remove the first part, simply remove from the list the ones split, and the remaining face id's are kept, this way the won´t be a gap.
Post Reply