Скрипт проверки идентичности 3D объектов

20 000 руб. за проект
13 марта 2020, 17:46 • 6 откликов • 53 просмотра
Необходимо реализовать скрипт для решения задачи проверки идентичности 3D объектов.

Есть 3D объект с количеством вершин от 1000 до 10000 в формате PLY. С помощью 4Х4 матрицы позиция и ротация объекта была изменена. Помимо изменения позиции в некоторых случаях (внешние обстоятельства, не связанные с сутью задачи) сетка объекта может подвергаться изменению или скульптурной (умышленной) деформации. Нам необходимо создать инструмент для определения случаев, когда изменилась только позиция и ротация, а сама сетка объекта осталась неизменной. Это позволит нам хранить информацию на сервере только по уникальным 3d объектам вместе с матрицами, с помощью которых можно получить второе состояние, тем самым сэкономить место.

Входные данные:
- 2 файла PLY, в которых содержатся 2 предположительно идентичных объекта, но в по-разному спозиционированных.
- 4х4 матрица преобразования, применив которую к координатам первого объекта возможно получится полностью идентичный второй объект.
Результат: true/false (идентичны ли сетки объектов или нет)

Скрипт должен запускаться на сервере Linux из консоли.
Важная особенность задачи: необходимо реализовать скрипт с помощью разных инструментов, чтобы выявить оптимальный по производительности способ:
- Скрипт для OpenScad
- Скрипт для Blender
- (опциольнально) Скрипт без тяжеловесных библиотек на C++
- (опциольнально) Скрипт для MeshLab

В дальнейшем планируется использовать этот инструмент как микросервис для обработки большого количества файлов, получение задач из очереди Rabbit MQ И тд. Но это в рамках дальнейших доработок.

Прикреплен архив с пятью парами тестовых файлов