удалить внутреннюю информацию при объединении двух трехмерных объектов - PullRequest
0 голосов
/ 06 апреля 2020

Привет, я сейчас работаю над проектом, в котором нам нужно объединить несколько трехмерных объектов. Так, например, разместите их рядом друг с другом, и иногда они также пересекаются.

Я ищу алгоритм / библиотеку или любую идею, которая бы уменьшала этот новый объединенный объект, чтобы он состоял только из внешних граней. (Наши 3d-объекты в настоящее время являются файлами .stl, но мы не привязаны к этому формату)

Мы пытались объединить эти объекты с numpy -stl, но, похоже, в этой библиотеке нет оптимизации, которая бы помогите с этой проблемой. Мы также попытались использовать логическое слияние из pyme sh, но с детальными объектами это занимает очень много времени.

Мы хотим потерять всю информацию, которая находится внутри объекта, и сохранить только ту информацию, которая находится снаружи. Так, например, если вы поместите этот комбинированный трехмерный объект в воду, нам нужны только грани, которые будут касаться водой.

Мы предпочитаем python, но любой алгоритм, который может быть реализован в python, будет приведите нас вперед.

Мы ценим каждый ответ:)

1 Ответ

0 голосов
/ 14 апреля 2020

LibIGL имеет привязки Python. Я хотел бы предложить пороговое значение окклюзии окружающей среды каждого аспекта. Например, возможно удалить все фасеты со значением окклюзии выше 0,8

https://libigl.github.io/libigl-python-bindings/igl_docs/#ambient_occlusion

Входными данными для этой функции являются вершины, фасет индексируется в вершинах , положение центроидов фасетов и нормали для каждого фасета. Выходными данными является окружающая окклюзия для каждого фасета, значение которой находится в диапазоне от 0 до 1. Значение 0 означает, что фасет полностью виден, а значение 1 означает, что он полностью затенен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...