Удалить самопересечения в Meshlab или vcglib

Как убрать самопересечение меша с помощью приложения Meshlab или vcglib?

1 ответ

Если вы ищете тривиальное решение с Meshlab, вы можете сделать следующее:

  1. Фильтры -> Очистка и восстановление -> Выбрать самопересекающиеся грани: вы увидите самопересечения, окрашенные в красный цвет.

  2. Фильтры -> Выделение -> Удалить выбранные грани: самопересекающиеся грани будут удалены.

  3. Правка -> Заполнить отверстие: вам нужно пройти по списку отверстий и установить флажок выбора для всех отверстий, образовавшихся в результате удаленных граней. Если в вашей сетке много отверстий, это может оказаться непростой задачей. Существует большая вероятность того, что удаленные грани могли оставить не состоящие из коллекторов отверстия, поэтому вы можете использовать это, чтобы выбрать отверстия для заполнения.

Это выходит за рамки, но в CGAL есть некоторые функции. Это все еще экспериментально и не документировано, но вы можете использовать функцию remove_self_intersection (). В зависимости от типа самопересечения вы также можете использовать (также экспериментальную) функцию autorefine_and_remove_self_intersections (). Первая функция, скорее всего, будет использоваться, когда вы хотите удалить самопересечение из-за потери точности (выполняя какое-то локальное пересечение), в то время как вторая должна использоваться, когда вы имеете сильные самопересечения.

Другие вопросы по тегам