Оптимизация сторонних 3Д моделей в ArcGIS CityEngine
Часто при импорте 3Д моделей, созданных в специализированном ПО для 3Д моделирования, например в 3ds Max, встречается что грани разбиты на треугольники. Это заметно увеличивает объём 3Д модели, ArcGIS требуется больше времени\ресурсов для её отображения как в ArcGIS Pro, так и в Веб Сцене, при этом эта триангуляция граней не добавляет детальности модели.
В ArcGIS CityEngine существует операция cleanupGeometry, которая позволяет оптимизировать структуру геометрической сетки модели без изменения её внешнего вида за счёт очистки совпадающих элементов. Эта операция позволяет значительно сократить количество граней и вершин в модели.
Модель после оптимизации в ArcGIS City Engine.
Параметры операции cleanupGeometry позволяют оптимизировать следующие элементы модели:
- vertices — Объединяет вершины и удаляет коллинеарные вершины.
- edges — Объединяет вершины и удаляет общие ребра между смежными гранями.
- faces — Объединяет вершины и удаляет дубли и вырожденные грани с небольшой площадью.
- all — Оптимизирует все элементы.
Кроме этого при выполнении cleanupGeometry можно установить параметр допуска (диапазон от 0 до 1), который контролирует точность операции:
- 0 — Очистка только соответствующих элементов: идентичные вершины, коллинеарные рёбра, копланарные грани или с нулевой площадью. В этом случае форма 3Д модели не изменяется.
- 1 —Вершины на расстоянии до 1 м объединяются. Рёбра с промежуточными углами до 10 градусов считаются коллинеарными. Нормали с промежуточными углами до 10 градусов считаются копланарными. Грани площадью до 1 м удаляются.
- [0, 1] — Для значений между 0 и 1 применяется линейная интерполяция.
Для оптимизации этой модели здания я использовал следующий скрипт CGA:
i(«Mehmon_xona_3d.dae»,yUp,keepSizeAlignPosition)
cleanupGeometry(all,0)
В этом скрипте CGA я так же использовал операцию insert , которая позволяет «вписать» 3Д модель в полигон различными методами.
Для автоматизации привязки и размещения 3Д моделей можно использовать атрибута полигона с именем файла модели и возможностями операции insert.
Размещённые оптимизированные модели можно экспортировать в файловую Базу Геоданных виде мультипатчей для работы в ArcGIS Pro либо сразу построить пакет сцены SLPK и опубликовать в виде слоя сцены для отображения в Веб Сцене.
В результате оптимизации 3Д модель быстрее отображается в ArcGIS Pro и Веб Сцене, а также занимает меньше места в памяти Веб Сцены.