Batched 3D Model (формат 3D Tiles) представляет собой способ хранения и визуализации множества 3D-объектов как единого оптимизированного набора геометрии. Основная идея заключается в объединении большого числа моделей в один пакет с общей структурой данных, что позволяет существенно повысить производительность при рендеринге в веб-среде, особенно при работе с глобальными сценами и сложными городскими моделями.
В контексте CesiumJS Batched 3D Model является одним из ключевых форматов потоковой передачи 3D-данных, ориентированных на масштабируемость и эффективную загрузку по уровням детализации. Он реализуется через спецификацию 3D Tiles и используется для отображения больших массивов объектов: зданий, инженерных сооружений, инфраструктуры и любых повторяющихся элементов сцены.
Batched 3D Model строится на принципе агрегации геометрии. Вместо того чтобы хранить каждую модель отдельно и выполнять отдельные draw calls, множество объектов объединяется в один или несколько батчей.
Ключевые элементы структуры:
Каждый объект внутри батча сохраняет логическую идентичность, несмотря на физическое объединение геометрии.
Batched 3D Model является частью спецификации 3D Tiles 1.0. При загрузке тайла происходит следующая цепочка операций:
Главное отличие от классических моделей заключается в том, что индивидуальные объекты не являются отдельными сущностями сцены, но сохраняют возможность интерактивного выделения.
Геометрия в Batched 3D Model обычно хранится в виде:
Особенность заключается в том, что каждый набор треугольников
помечается batchId, который связывает его с записью в
таблице свойств.
Это позволяет:
Batch Table представляет собой JSON-структуру, содержащую свойства каждого объекта внутри батча.
Типичные данные:
Пример логики:
Важная особенность — отсутствие жёсткой привязки к геометрии. Семантика отделена от визуального представления.
Feature Table используется для хранения данных, связанных с геометрией на уровне вершин или примитивов. В отличие от Batch Table, он может содержать:
Эти данные активно применяются для оптимизации отрисовки и определения видимости объектов.
Одной из ключевых возможностей Batched 3D Model является интерактивная выборка объектов.
Процесс включает:
Результатом становится доступ к логическому объекту сцены, а не только к геометрии.
Это критически важно для:
Главное преимущество Batched 3D Model заключается в снижении нагрузки на GPU и CPU.
Основные механизмы оптимизации:
В результате сцены с десятками тысяч объектов могут рендериться в реальном времени в браузере.
Batched 3D Model тесно связан с системой уровней детализации.
Каждый tile содержит:
CesiumJS динамически подменяет тайлы в зависимости от:
Это позволяет избегать перегрузки сцены при дальнем обзоре.
Несмотря на высокую эффективность, Batched 3D Model имеет ряд ограничений:
По этой причине в современных системах он часто используется вместе с instanced rendering и glTF-based pipelines.
Batched 3D Model особенно эффективен в сценариях цифровых двойников городов.
Типичные применения:
Объединение объектов в батчи позволяет обрабатывать целые районы как единые структурированные блоки.
CesiumJS поддерживает динамическое стилизование батчей через язык выражений.
Возможности:
Стиль применяется на уровне batchId, без необходимости модификации геометрии.
Типичный pipeline работы Batched 3D Model:
Каждый шаг оптимизирован под стриминг больших сцен через интернет-канал.
Batched 3D Model является базовым типом 3D Tiles наряду с:
Он исторически стал первым массово используемым форматом для городской визуализации, заложив основу для более современных instancing-подходов.
В WebGL-конвейере Batched 3D Model обрабатывается следующим образом:
Благодаря этому достигается высокая степень параллелизма GPU.
При работе с глобальными сценами Batched 3D Model позволяет:
Эти свойства особенно важны при визуализации геопространственных данных в реальном времени.