Japanese
Leave Your Message

Создание экземпляров компонентов в 3D/BIM-моделях: как дедупликация геометрии открывает возможности рендеринга в масштабе графического процессора.

2026-08-17

Создание экземпляров компонентов в 3D/Бим Облегчение веса:Как дедупликация геометрии открывает возможности для масштабируемости графических процессоров оказыватьв

От нативной BIM-модели до сцены, отображаемой в браузере — инженерные решения, лежащие в основе конвейера создания экземпляров 3D Expert в плагинах 3D/BIM, Opt File Generator и Rapid3D Loader для Three.js.

Компания 3D Expert Co.,Ltd. | Осака, Япония | август 2026 г.

Он Конвейер создания экземпляров — Сопоставлено с продуктом

Этап 1: Геометрическая идентификация и обнаружение дубликатов

Первая сложность при создании экземпляров заключается в определении геометрически идентичных компонентов. В списке компонентов BIM-модели 400 элементов могут быть помечены как "Дверь_Тип_А", но параметрические вариации, изменения, вносимые при редактировании, и дрейф точности вычислений с плавающей запятой означают, что не все из них имеют одинаковую сетку. Механизм идентификации вершин в 3D Expert анализирует фактические данные вершин, а не метки, чтобы определить истинную геометрическую эквивалентность.

  1. Многоподписное геометрическое хеширование

Каждой сетке присваивается составной отпечаток, объединяющий три независимые сигнатуры: (а) количество вершин и треугольников, (б) размеры ограничивающего параллелепипеда, выровненного по осям координат, с квантованным допуском, и (в) MurmurHash отсортированных координат вершин. Две сетки рассматриваются в качестве кандидатов для создания экземпляра только в том случае, если все три сигнатуры совпадают. Этот трехступенчатый фильтр эффективно исключает ложные срабатывания — простые проверки сигнатур (количество вершин, ограничивающий параллелепипед) отклоняют более 95% несовпадений до того, как запустится дорогостоящее сравнение хешей.

  • Работает на основе: плагина 3D/BIM (извлечение геометрии → GLZIP) → генератора файлов Opt (идентификация и обнаружение дубликатов → .opt). Альтернатива для настольных компьютеров: 3D Model & Data Asst (импорт GLZIP или открытых форматов, выполняет ту же идентификацию файлов внутри, Windows 10+).
  1. Проверка эквивалентности с учетом топологии

Когда сигнатуры отпечатков совпадают, на дополнительном этапе проверки сравнивается топология сетки: граф смежности вершин и ребер. Это позволяет выявить случаи, когда две сетки имеют одинаковое количество вершин и ограничивающий параллелепипед, но разную связность — например, дверная панель и оконная рама, которые случайно имеют общие размерные характеристики. В группу экземпляров объединяются только сетки, прошедшие проверку как сигнатур, так и топологии.

  • Работает на основе: Opt File Generator (проверка топологии → .opt). Настольная версия: 3D Model & Data Assist (тот же механизм проверки, интегрированное облегчение кода + рендеринг, Windows 10+).
  1. Нормализация допуска чисел с плавающей запятой

Инструменты BIM-моделирования хранят координаты вершин в единицах измерения, специфичных для проекта, и уровнях точности. Revit использует внутренние футы с разрешением 1/256 дюйма; Bentley использует миллиметры с двойной точностью. Механизм распознавания отпечатков нормализует все координаты к общей квантованной сетке (по умолчанию допуск ±0,1 мм, настраиваемый) перед хешированием, гарантируя, что одно и то же семейство дверей, экспортированное из разных инструментов моделирования, будет иметь совпадающие отпечатки. Эта кроссплатформенная нормализация необходима для проектов, в которых используются модели из нескольких BIM-инструментов.

  • Работает на основе: плагина 3D/BIM (извлечение координат → GLZIP) → генератора файлов Opt (нормализация и создание отпечатков → .opt). Настольная версия: 3D Model & Data Assist (тот же конвейер, Windows 10+).

Этап 2: Реорганизация данных прототипа-экземпляра

После обнаружения дублирующихся групп движок реорганизует данные: одна сетка выбирается в качестве прототипа, а каждый другой член группы заменяется компактной записью экземпляра, содержащей только матрицу преобразования 4×4 и ссылку на прототип. Эта реорганизация происходит внутри файлового формата .opt, поэтому последующие потребители (Rapid3D Loader, 3D Model & Data Asst) получают данные, предварительно организованные для рендеринга экземпляров.

  1. Выбор прототипа и удаление дубликатов сетки

Для каждой группы экземпляров движок выбирает в качестве прототипа сетку с наивысшим геометрическим качеством (как правило, ту, которая имеет наиболее полное UV-отображение и данные нормалей). У всех остальных элементов удаляются буферы вершин/треугольников/индексов, и вместо них используется облегченный дескриптор экземпляра: матрица преобразования из 16 чисел с плавающей запятой (положение, вращение, масштаб) плюс идентификатор прототипа. В типичной модели коммерческого здания это уменьшает буфер геометрии на 70–90% — 400 одинаковых дверей, которые ранее занимали 400 × 8000 вершин, теперь занимают 8000 вершин + 400 × 64 байта.

  • Работает на основе: Opt File Generator (выбор прототипа и дедупликация → .opt). Настольная версия: 3D Model & Data Assist (та же реорганизация, интегрированный рендеринг, Windows 10+).
  1. Сохранение атрибутов для каждого экземпляра

Создание экземпляров не означает потерю данных по каждому элементу. Каждая запись экземпляра сохраняет ссылки на свой набор атрибутов — идентификатор элемента, название семейства, название типа, уровень, фаза, назначение материала и все пользовательские параметры. Когда пользователь щелкает по экземпляру двери в веб-просмотрщике, Rapid3D Loader преобразует идентификатор экземпляра в правильную запись атрибута в файле базы данных и отображает полную панель свойств. Дерево структуры также сохраняет иерархию для каждого экземпляра: каждый экземпляр отображается в правильном положении в цепочке «Тип семейства → Уровень → Группа».

  • Работает на основе: плагина 3D/BIM (извлечение атрибутов → GLZIP + БД) → генератора файлов Opt (связывание атрибутов экземпляра → .opt + БД) → Rapid3D Loader (запрос свойств для каждого экземпляра). Настольная версия: 3D Model & Data Assist (полный конвейер обработки данных, Windows 10+)
  1. Групповая обработка и сортировка экземпляров

После удаления дубликатов группы экземпляров объединяются в пакеты и сортируются по назначению материала и пространственной локальности. Компоненты, имеющие одинаковый прототип И одинаковый материал, объединяются в один пакет экземпляров, что минимизирует переключения состояния материала во время рендеринга. Пространственная сортировка (по иерархии ограничивающих объемов) обеспечивает эффективное отсечение по пирамиде видимости во время выполнения — если пирамида видимости камеры не пересекает объединенный ограничивающий параллелепипед группы, весь пакет пропускается за одну проверку.

  • Работает на основе: Opt File Generator (пакетная обработка и пространственная сортировка → .opt) → Rapid3D Loader (рендеринг с отсечением по пирамиде видимости). Настольная версия: 3D Model & Data Assist (та же пакетная обработка, рендеринг на настольном компьютере, Windows 10+)

Этап 3: Конвейер рендеринга с использованием экземпляров графических процессоров

Заключительный этап происходит во время рендеринга. Rapid3D Loader для Three.js считывает структуру прототипа-экземпляра из файла .opt и создает объекты Three.js InstancedMesh — встроенный механизм WebGL, позволяющий за один вызов отрисовки отобразить N копий сетки с различными преобразованиями. Настольный движок в 3D Model & Data Asst использует эквивалентный путь создания экземпляров через свой собственный конвейер рендеринга.

  1. Реконструкция экземпляра сетки WebGL

При загрузке файла .opt, Rapid3D Loader перебирает таблицу групп экземпляров и создает один THREE.InstancedMesh для каждой группы. Каждый InstancedMesh получает геометрию прототипа и массив матриц экземпляров. Графический процессор отрисовывает все экземпляры за один вызов отрисовки (через gl.drawArraysInstanced / gl.drawElementsInstanced), устраняя накладные расходы на каждый элемент, которые в противном случае привели бы к тысячам вызовов отрисовки. Для модели с 15 000 компонентами в 80 группах экземпляров количество вызовов отрисовки сокращается с ~15 000 до ~80 — снижение на 99,5%.

  • Работает на основе: Rapid3D Loader для Three.js (реконструкция с использованием InstancedMesh, веб-рендеринг). Настольный аналог: 3D Model & Data Asst (нативное создание экземпляров на GPU, Windows 10+).
  1. Взаимодействие в рамках отдельного экземпляра: выбор, раскрашивание и выделение.

Распространенное заблуждение относительно инстансирования заключается в том, что оно жертвует интерактивностью — что все экземпляры должны выглядеть и вести себя одинаково. Rapid3D Loader опровергает это, предоставляя API для каждого экземпляра: setColorAt(instanceId, color) применяет уникальный цвет к одному экземпляру, не затрагивая другие; трассировщик лучей, осуществляющий выбор, обрабатывает события щелчка по отдельным идентификаторам экземпляров, а не только по прототипу сетки. Это означает, что пользователь может выделить одну дверь из 400, изолировать определенное окно или применить прозрачное отображение к подмножеству несущих колонн — и все это при том, что графический процессор сохраняет эффективность одного вызова отрисовки.

  • Разработано на основе: Rapid3D Loader для Three.js (API для взаимодействия с каждым экземпляром, веб-рендеринг). Для настольных компьютеров: 3D Model & Data Assist (аналогичное взаимодействие с каждым экземпляром, Windows 10+).
  1. LOD-Aware Instancing

Генерация уровня детализации (LOD) в Opt File Generator учитывает границы экземпляров. Каждая прототипная сетка получает свою собственную цепочку LOD (высокое/среднее/низкое количество полигонов), и все экземпляры этого прототипа используют одну и ту же цепочку LOD. Во время рендеринга Rapid3D Loader выбирает соответствующий уровень LOD для каждой группы экземпляров в зависимости от расстояния до камеры — экземпляры, расположенные близко, рендерятся в полном разрешении, экземпляры, расположенные далеко, используют упрощенную геометрию. Поскольку все экземпляры в группе используют один и тот же переключатель LOD, отсутствуют накладные расходы на вычисление LOD для каждого экземпляра. В сочетании с отсечением по пирамиде видимости это обеспечивает плавный рендеринг моделей с более чем 100 000 компонентами на оборудовании потребительского класса.

  • Работает на основе: Opt File Generator (генерация LOD для каждого прототипа → .opt) → Rapid3D Loader (переключение LOD на основе расстояния + рендеринг с использованием экземпляров). Настольная версия: 3D Model & Data Asst (та же функция создания экземпляров с учетом LOD, Windows 10+)

Этап 4: Оценка влияния на производительность

Создание экземпляров компонентов — это не теоретическая оптимизация, а измеримое, а иногда и существенное улучшение размера файлов, использования памяти и производительности рендеринга. Приведенные ниже метрики получены из реальных BIM-моделей, обработанных с помощью конвейера 3D Expert.

  1. Уменьшение размера файла

Модель 12-этажного офисного здания в Revit размером 450 МБ (87 000 компонентов, 62% дубликатов) была обработана с помощью Opt File Generator с включенным инстансированием. Полученный файл .opt имел размер 38 МБ — на 92% меньше по сравнению с той же моделью, экспортированной без инстансирования (480 МБ). Экономия в основном достигается за счет устранения избыточных буферов геометрии: 54 000 дублирующихся сеток (каждая в среднем 6 КБ данных вершин) были заменены 420 прототипами + 54 000 матрицами экземпляров (по 64 байта каждая), что позволило сэкономить примерно 310 МБ исходных геометрических данных до сжатия Draco.

  • Создано с помощью: Opt File Generator (создание экземпляров + сжатие Draco → .opt)
  1. Улучшение количества вызовов отрисовки и частоты кадров.

Та же модель была загружена в Rapid3D Loader для Three.js. Без инстансирования сцена сгенерировала 87 000 вызовов отрисовки, достигнув 8–12 FPS на ноутбуке среднего уровня со встроенным графическим процессором. С инстансированием количество вызовов отрисовки сократилось до 340 (один на группу экземпляров + уникальные сетки без инстансов), а частота кадров улучшилась до 45–60 FPS на том же оборудовании — улучшение в 4–6 раз. На настольном компьютере с дискретным графическим процессором модель с инстансированием поддерживала 60 FPS при разрешении 4K.

  • Работает на основе: Rapid3D Loader для Three.js (рендеринг с использованием экземпляров сетки, веб). Для настольных компьютеров: 3D Model & Data Asst (собственный рендеринг с использованием экземпляров сетки, Windows 10+).
  1. Оптимизация объема используемой памяти

В памяти браузера неинстанцированная версия модели потребляла 1,2 ГБ буферной памяти графического процессора (геометрия + материалы + текстуры). Инстанцированная версия потребляла 290 МБ — снижение на 76%. Это разница между моделью, которая приводит к сбоям на устройствах с малым объемом памяти (планшеты, ноутбуки со встроенным графическим процессором), и моделью, работающей без сбоев. Для мобильных веб-браузеров, где основным узким местом является память, инстанцирование часто является наиболее эффективной оптимизацией.

  • Работает на основе: Opt File Generator (оптимизированный по памяти вывод .opt) → Rapid3D Loader (эффективное управление буфером GPU). Настольная версия: 3D Model & Data Assist (та же оптимизация памяти, Windows 10+).

────────────────────────────────────────────────────────

A_technical_infographic_illust_2026-08-17T08-16-29.png

Собираем воедино: какой продукт для каких нужд?

Процесс создания экземпляров интегрирован во всю экосистему продуктов 3D Expert. Выбор продукта зависит от того, где находятся ваши пользователи и что им нужно делать:

  • Создание веб-платформы BIM или панели мониторинга цифрового двойника?→ Используйте плагин 3D/BIM для извлечения исходных файлов .rvt/.dgn в промежуточный GLZIP (с сохранением метаданных экземпляров семейств), затем запустите генератор файлов Opt для выполнения геометрической идентификации, дедупликации и реорганизации данных с помощью сжатия Draco (выход: .opt + DB). Разверните файлы .opt на вашем веб-сервере. Загрузите их с помощью Rapid3D Loader для Three.js — он автоматически перестраивает объекты InstancedMesh для эффективного рендеринга на GPU. Выбор экземпляров, раскраска и запрос свойств доступны через API JavaScript.
  • Как отправлять BIM-модели клиентам с настольных компьютеров без доступа к сети?→ Используйте плагин 3D/BIM для извлечения данных, затем передайте клиенту файл 3D Model & Data Assist (Windows 10+). Клиент импортирует GLZIP (или открывает форматы, такие как IFC/FBX/STEP), и приложение выполняет тот же анализ экземпляров внутри себя — идентификация по отпечаткам, дедупликация и рендеринг с использованием графического процессора — все это происходит в рамках единого интегрированного процесса. Файлы .opt не требуются.
  • Как преобразовать файлы открытых форматов (IFC, FBX, STEP, 3DXML) без собственной лицензии САПР?→ Пропустите плагин. Передавайте файлы открытых форматов непосредственно в Opt File Generator, который выполняет геометрическую идентификацию и дедупликацию экземпляров любых данных сетки — даже форматов, в которых отсутствуют собственные метаданные экземпляров. Механизм идентификации по геометрическим признакам выявляет дубликаты только по геометрии. Выходные данные: .opt для веб-развертывания через Rapid3D Loader.
  • И для веб-версии, и для настольных компьютеров?→ Для веб-версии: извлечение с помощью плагина (собственный, сохраняет метаданные семейства) или импорт файлов открытых форматов → Opt File Generator (инстансирование + Draco → .opt) → Rapid3D Loader (веб-рендеринг с использованием InstancedMesh). Для настольных компьютеров: импорт GLZIP или файлов открытых форматов непосредственно в 3D Model & Data Asst (Windows 10+) — он выполняет инстансирование и рендеринг в одном приложении.

────────────────────────────────────────────────────────

Заключение: Почему важна инстансировка на уровне конвейера

Создание экземпляров компонентов — это наиболее эффективный метод уменьшения объема данных в BIM-моделях, содержащих повторяющиеся элементы, а таких моделей практически все. Сокращение объема геометрических данных на 60–90%, уменьшение количества вызовов отрисовки на 99% и более, а также повышение частоты кадров в 4–6 раз — это не исключительные результаты, а базовые ожидания при правильном применении создания экземпляров.

Отличительной особенностью подхода 3D Expert является то, что инстансирование — это не дополнительная функция или этап постобработки. Это возможность на уровне конвейера, которая начинается с извлечения (сохранение исходных метаданных экземпляров семейств в плагине 3D/BIM), развивается в процессе облегчения (многосигнатурная идентификация и проверка с учетом топологии в генераторе файлов Opt) и завершается рендерингом (WebGL InstancedMesh с полным взаимодействием с каждым экземпляром в Rapid3D Loader). Каждый этап предназначен для передачи данных на следующий, поэтому графический процессор получает данные, предварительно организованные для вызовов отрисовки с использованием инстансов — без дедупликации во время выполнения, без лишней памяти, без ненужных вызовов отрисовки.

Для компаний, работающих в сфере архитектуры, инженерии и строительства и разрабатывающих веб-интерфейсы для просмотра BIM-моделей, платформы цифровых двойников или настольные инструменты для анализа моделей, этот конвейер обработки данных означает разницу между моделью, которая загружается автоматически, и моделью, которая загружается мгновенно. Разница между 12 кадрами в секунду и 60 кадрами в секунду. Разница между программой просмотра, работающей на планшете на строительной площадке, и программой, требующей рабочей станции. Создание экземпляров компонентов — это не дополнительная инженерная функция, это базовый уровень.

────────────────────────────────────────────────────────

О компании

Компания 3D Expert Co., Ltd., со штаб-квартирой в Осаке, Япония, разрабатывает высокопроизводительное программное обеспечение 3D/BIM для мировой строительной отрасли. В наш продуктовый портфель входят:

  • Плагин для 3D/BIM — В настоящее время доступно 6 надстроек для экспорта в CAD/BIM-платформы, построенных на основе официальных API поставщиков. Выполняет извлечение геометрии, текстур, материалов, структурных деревьев и метаданных экземпляров семейств без потерь из исходных форматов (.rvt, .dgn и т. д.). Выходной файл: промежуточный GLZIP. НЕ выполняет сжатие или облегчение.
  • Генератор файлов Opt — настольный инструмент для пакетной обработки файлов, позволяющий упростить их структуру. Принимает файлы промежуточных форматов GLZIP (из плагина) или открытых форматов (IFC, FBX, STEP, 3DXML и т. д.) и применяет геометрическую идентификацию, дедупликацию экземпляров, реорганизацию прототипов и экземпляров, сжатие Draco, генерацию LOD и оптимизацию сетки на локальном компьютере пользователя. Выходные данные: модель в формате .opt + база данных. Это ЕДИНСТВЕННЫЙ продукт, который создает файлы .opt.
  • 3D Model & Data Assist — нативное настольное приложение для Windows 10+. Импортирует файлы GLZIP (из плагина) или открытые форматы (IFC, FBX, STEP, 3DXML и т. д.), выполняет тот же анализ инстансирования и облегчение модели внутри приложения, а также рендерит модель с использованием инстансирования на графическом процессоре и полным запросом свойств — всё в одном интегрированном приложении. НЕ выводит файлы .opt.
  • Rapid3D Loader для Three.js — npm-пакет (opt-rapid3d-loader) со встроенным декодером WASM Draco, прогрессивной потоковой передачей данных по частям, автоматической реконструкцией InstancedMesh и полным API для взаимодействия с каждым экземпляром (выбор, раскрашивание, прозрачность, подсветка, запрос по клику). Непосредственно считывает и загружает модели в формате .opt (созданные с помощью Opt File Generator) в сцены Three.js.

Узнайте больше или начните бесплатную пробную версию на сайте https://www.opt3ds.com/

Контакт: info@3dexpert.jp


© 2010–2026 3D Expert Co.,Ltd. Все права защищены.