В данной статье мы хотели бы поделиться опытом интеграции нескольких загрузчиков для чтения различных форматов и подробнее остановиться на том, как мы реализовали поддержку формата STEP с помощью загрузчика C3D и сравнение с загрузчиком OpenCascade, который был интегрирован в наше ПО ранее.
Немного предыстории
Цель нашего программного обеспечения — помочь компаниям ускорить согласование проектов между лицом, принимающим решение, руководителем проекта, исполнителями, партнерами и заказчиками, за счет переноса обсуждения из плоскости чертежей, картинок на мониторе и натурных макетов в виртуальную реальность, работа с проектов в масштабе 1:1 (на основе 3D-модели) с возможностью рассмотреть его будто он уже реализован или построен. Использование технологии виртуальной реальности позволяет повысить эргономические характеристики проектируемого объекта, снизить количество и стоимость ошибок в проекте, повысить эффективность обучения сотрудников на производстве и снизить риск возникновения чрезвычайных ситуаций. Кроме того, технология применяется в сфере обучения.
Для реализации поддержки САПР форматов мы используем разные подходы, начиная от самостоятельной реализации по открытым стандартам, использования Open Source и, в том числе, с помощью коммерческих решений, включая ядра САПР.
Реализация поддержки JT формата и знакомство с загрузчиком C3D Labs
По результату работы с текущими заказчиками, мы приняли решение по реализации формата JT, который сильно востребован в машиностроении, особенно у заказчиков, которые работают с программным обеспечением Siemens NX. Мы провели анализ разных способов по реализации такого загрузчика, основными критериями выбора такого решения были качество загрузки JT, скорость поддержки, условия использования (ежегодная оплата, процент с продаж, возможности и условия тиражирования) и цена. В результате выбрали решение компании C3D Labs, тем более, что к этому моменту мы уже начинали прорабатывать интеграцию с САПР Компас-3D, компании Аскон. А C3D является ядром этого САПР.
Также C3D Labs представляет доступ и к другим форматам, таким как: JT, C3D, X_T, X_B, STEP, IGES и ACIS SAT. Но часть из этих форматов, а конкретно STEP и IGES, уже были реализованы в VR Concept с помощью другого продукта — Open Cascade.
Партнерство с компанией C3D Lab заключили в июне 2019 года. В июле начали работу над реализацией загрузчика формата JT с помощью C3D. У нас ушло примерно 3 человека-месяца и уже осенью был готов загрузчик. Первые пользователи получили сборку VR Concept с поддержкой JT в сентябре. А уже в октябре были реализованы и другие форматы JT, C3D, X_T, X_B, STEP, IGES и ACIS SAT. Новую версию VR Concept мы выпустили в декабре и в ней уже присутствовала поддержка всех этих форматов с помощью ядра C3D.
Тестирование загрузчиков STEP
Самый популярный из перечисленных форматов — это машиностроительный формат STEP. И у нас было две реализации загрузки с помощью разных библиотек. Стояла задача сделать выбор или оставить обе реализации.
Мы решили провести тестирование сравнения двух загрузчиков STEP в VR Concept, реализованных на разных платформах.
Для тестирования мы использовали 64 различных модели формата STEP с различными характеристиками. Варьировался размер файлов (от 43 Кб до 269909 Кб) и количество объектов/тел модели (от 45 до 18483)
Модель предоставлена компанией АСКОН
В зависимости от вышеуказанных характеристик по результатам теста сформировали следующую таблицу, показывающую время загрузки моделей с различным количество тел/объектов:
Диапазон количества объектов (тел) | Количество моделей в выборке | Среднее время загрузки VR Concept c Open Cascade (сек) | Среднее время загрузки VR Concept с C3D(сек) |
---|---|---|---|
1-1000 | 39 | 32,5 | 9,84 |
1000-3000 | 23 | 93,4 | 54,2 |
более 3000 | 2 | 454 | 57,5 |
Также отобрали три модели для детального показательного сравнения. Компрессор (ниже по тексту), троллейбус (предыдущая картинка) и экскаватор LEGO. Модели эти довольно объемные, с количеством тел более 2000. Одну из них можно посмотреть и проверить самостоятельно по ссылке. А вот так она выглядит у нас:
В зависимости от вышеуказанных характеристик по результатам теста сформировали следующую таблицу:
Вместо выводов
Мы не ожидали получить такой результат, если честно! C3D оказался намного шустрее в чтении формата STEP, чем Open Cascade, при одинаковых настройках и визуального качества результата. Кроме того, как нам кажется, при этом качество отображения модели с C3D даже чуть лучше.
Еще одно сравнение качества визуализации в увеличенном масштабе: сверху Open Cascade, снизу C3D. Модель компрессора предоставлена компанией АСКОН
Да, мы не сравнивали оба этих конвертера вне нашего решения, поэтому если у вас есть данные на этот счет, будем рады им! Возможно, у вас есть мысли в защиту Open Cascade? Поделитесь, пожалуйста, в комментариях.
Мы продолжаем тестировать и сравнивать Open Cascade и C3D на разных 3D-моделях. Будем рады, если поделитесь своими 3D-моделями — мы проведем тестирование на них и поделимся результатом!
exaw
Скажите, время замеряли конкретно загрузки модели из файла, или вместе с визуализацией?
И почему картинки компрессора разные? Обе картинки получены вашим рендером?
VR_Concept Автор
Спасибо за ваши вопросы!
Время замеряли именно загрузки и генерации сетки. Модель после загрузки отправляется сразу на рендер и это занимает секунды, все происходит внутри одной системы.
У компрессора не на всех объектах задан материал и используется наш механизм случайной закраски, чтобы объекты визуально были лучше различимы.
exaw
Спасибо. Интересно посмотреть на тайминги этих этапов отдельно. Где проседает opencascade, на формировании или на тесселяции, она ведь тоже не бесплатна.
VR_Concept Автор
Спасибо за наводку, доработаем лог в будущей версии — посмотрим.