Введение в Cesium 10: Cesium загружает данные 3DTiles
Введение в Cesium 10: Cesium загружает данные 3DTiles

Введение в 3DTiles

3DTiles — это отображаемый крупномасштабный формат трехмерных пространственных данных, ориентированный на сетку, специально разработанный для потоковой передачи и рендеринга массивных трехмерных геопространственных данных и используемый для хранения и управления данными трехмерных моделей на основе сетки. Его структура данных основана на форматах B3DM и PNTS, может поддерживать несколько уровней LOD и использует наборы плиток (коллекции плиток) для организации данных и управления ими. 3DTiles имеет следующие возможности:

  • Поддержка больших масштабов、Высокоточные трехмерные Модельные дисплеи.
  • Используйте стандартный формат json для описания структуры данных и элементов данных.
  • Используйте алгоритмы сжатия, такие как DRACO и LZMA, для повышения эффективности передачи и хранения данных.
  • Поддерживает многоуровневый уровень детализации.,И поддерживает быстрое открытие и закрытие различных уровней слоев данных.

Структура данных 3DTiles

В 3DTiles набор плиток (Tileset) состоит из группы плиток (Tiles), организованных в соответствии с пространственной структурой данных (древовидной структурой). Он содержит как минимум один файл JSON (включая плитки), используемый для описания набора плиток. и объекты плитки из набора плиток), каждый объект плитки может ссылаться на один из следующих форматов для рендеринга содержимого плитки:

Форматы b3dm и i3dm созданы на основе glTF. Их содержимое фрагментов включает ресурсы glTF в двоичный код, включая информацию о геометрии и текстуре модели. Формат pnts не включает ресурсы glTF. существовать Структура данных 3DTiles, Tileset (набор плиток) — это основная единица управления 3DTiles, включая глобальную информацию Tileset, путь к ресурсам Tileset, корневую плитку Tileset и т. д. Каждый набор плиток содержит несколько плиток, представляющих различные уровни данных и уровни просмотра, а каждая плитка содержит несколько подплиток. Самая нижняя плитка может содержать определенные 3D-модели, называемые листом. Tile。

Классы, связанные с 3DTiles в Cesium

1. Класс Cesium3DTileset

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

Общие свойства:
  • url:3DплиткаданныеизURLадрес。
  • modelMatrix:Должен3Dплитканабориз Модельматрица。
  • boundingSphere:3Dплитканаборизограничивающая сфера(bounding сфера), используемый для расчета и обработки видимости, обнаружения столкновений и т. д.
  • root:3Dплитканаборизкореньплитка(root tile)。
  • ready: Логическое свойство, указывающее, готова ли 3D-плитка к рендерингу.
Часто используемые методы:
  • destroy():разрушать3Dплиткаи его содержание。
  • getProperty(name):Получить на основе имени атрибута3Dплиткаизсвойствоценить。
  • setProperty(name, value):настраивать3Dплиткаизсвойствоценить。
  • hasProperty(name):суждение3Dплитка Включить ли указанное имяизсвойство。
  • makeStyleDirty():уведомить3Dплитканабор需хотеть重新应用стиль。
  • show:настраивать3Dплитканаборизвидимость。

2. Класс Cesium3DTileStyle

Cesium3DTileStyle — это класс, используемый для указания и применения стиля наборов трехмерных плиток; он может управлять цветом, размером точек, стилем меток и текстовым содержимым трехмерных плиток; он может классифицировать и раскрашивать трехмерные плитки, а также создавать на основе атрибутов (например, высота, категория или время).

Общие свойства:
  • color:3Dплиткаизцвет,Это может быть RGBA, RGB или шестнадцатеричное значение цвета.
  • pointSize:3Dплиткасерединаизразмер。
  • labelStyle:3Dплиткасерединаиз Этикеткаизстиль。
  • labelText:3Dплиткасередина Этикеткаизтекстовый контент。
  • show:3Dплиткаизвидимость。
  • style:3Dплиткаиз所有стильсвойство。

3.Cesium3DTileContentдобрый

Cesium3DTileContent — это класс, используемый для представления содержимого и геометрической информации одной трехмерной плитки. Он может использовать класс Cesium3DTileContent для установки и получения свойств геометрии и метаданных, хранящихся в трехмерной плитке, и применения их к трехмерным объектам в трехмерной плитке.

Общие свойства
  • featuresLength:3Dплиткасодержаниесередина包含изэлементколичество。
  • pointsLength:3Dплиткасодержаниесередина包含из点количество。
  • trianglesLength:3Dплиткасодержаниесередина包含из三角形количество。
  • geometryByteLength:3Dплиткасодержаниеизгеометрияданные Длина байта。
  • texturesByteLength:3Dплиткасодержаниеизтекстураданные Длина байта。
Общие методы
  • hasProperty(batchId,name):исследовать3Dплиткасодержаниесерединада否存существовать具有指定имяизсвойствоценить。Должен Метод требует двух параметров: batchId:хотетьисследоватьсвойствоизэлементсуществовать批处理表серединаизиндекс。 name:хотетьисследоватьизсвойствоимя。

Этот метод вернет логическое значение, указывающее, существует ли указанный атрибут в контексте указанного идентификатора пакета в таблице пакетов.

Этот метод в основном используется для динамического создания и применения стилей 3D-плиток.,использовать3DплиткасодержаниеизhasPropertyМетод в порядкеисследовать3Dплиткада否具有指定имяизсвойство,для выборочного применения стилей. Например,Можно проверить, существует ли атрибут «высота» в 3D-тайле.,Затем 3D-плитки сортируются и окрашиваются в зависимости от условий.,Или запустите определенный анимационный эффект.

  • getFeature(batchId):получать批处理表середина指定индексизэлементизсвойствоценитьнабор合。Должен方法需хотеть一个参数: batchId:хотетьполучатьсвойствоизэлементсуществовать批处理表серединаизиндекс。

Этот метод вернет объект JavaScript, содержащий все значения атрибутов для указанного объекта, которые находятся в объекте массовой таблицы, а ключи атрибутов имеют те же имена, что и их имена в массовой таблице.

Этот метод в основном используется для взаимодействия и работы с 3D-плитами в цезии. Помимо получения значений атрибутов в массовой таблице, вы также можете использовать этот метод для прикрепления метаданных к объектам для поддержки функциональности метаданных. Например, после вызова этого метода вы можете сохранить дополнительные имена и значения метаданных в объекте объекта, а затем использовать эти атрибуты метаданных при применении определенных стилей 3D-плиток, запросов динамической фильтрации или других операций, которые взаимодействуют с объектом.

Обратите внимание: если вы попытаетесь получить атрибут объекта для идентификатора пакета, который не существует, этот метод вернет undefined。в то же время,Если объект, который вы хотите получить, имеет неполные или неверные атрибуты данных.,Метод может возвращать ошибку или частичные данные атрибута.

4. Функция Cesium3DTileFeature.

Класс Cesium3DTileFeature используется для представления отдельного объекта (объекта) в трехмерной плитке и связанных с ней атрибутов.

Общие свойства
  • color:свойства цвета,Используется для установки цвета элементов 3D-плитки. Цвет поддерживает формат RGBA (красный/зеленый/синий/прозрачный канал).,это может быть множество,множествоиз Структура[red, green, blue, альфа], каждое значение находится в диапазоне от 0 до 1. Класс Cesium3DTileFeature позволяет установить цвет, переопределяющий цвет по умолчанию для 3D-плиток.
  • featureId:элементIDсвойство,Это значение любого типа,Уникальный идентификатор, используемый для определения каждого объекта 3D-плитки. Разработчики могут использовать этот атрибут для отслеживания определенных функций 3D-плитки.,и выборочно воздействовать на них, когда это необходимо.
  • polylinePositions:хранилищеэлементизпозиция линииизсвойство(если существует)。Долженсвойствоиспользуется для3Dплиткасерединаизлинейныйэлемент,и содержит набор числовых значений множество,Позиция, используемая для указания стиля линии этого объекта. Каждое числовое значение интерпретируется как декартова3 координата.
  • primitive:иэлемент Связанныйизпримитивныйобъект,Может использоваться для получения информации о геометрии объекта и взаимодействия с ней. Это свойство позволяет разработчикам напрямую получать доступ к функциям и связанным с ними свойствам в 3D-тайлах.
  • tileset:иэлемент Связанныйиз3Dплитканаборобъект。Долженсвойствоиспользуется дляполучатьэлемент所существоватьиз3Dплитканаборобъект,для совместимости и манипуляции.
Общие методы
  • getProperty(name):получатьэлементсуществовать批量表серединаиз具有指定имяизсвойствоценить。
  • setProperty(name, value):настраивать指定имяизсвойствоценить。
  • hasProperty(name):исследоватьэлементсуществовать批量表серединада否具有指定имяизсвойство。

5. Класс Cesium3DTile

Класс Cesium3DTile используется для представления данных 3D-мозаики.

Общие свойства
  • boundingSphere:один содержит3Dплиткаизминимальное сферическое граничное тело。Долженсвойствоиспользуется для裁剪和优化3Dплиткаизпроизводительность дисплея。boundingSphereРассчитывается по ограничивающей рамке,и его можно вызвать, позвонивupdate()способ его обновления。
  • children:один содержит Все детиплиткаизмножество。каждый ребенокплитка ВсеCesium3DTileПример。когда3Dплиткаизсодержаниеобъект Содержит несколькомножествочас,Обычно они создают подплитки для каждого множества, чтобы управлять этим множеством.
  • computedTransform:один содержитототецплиткаприезжатькогдавпередплиткаиз4x4матрицаизмножество。Долженматрицаиспользуется для将когдавпередплиткаизсодержаниеобъект Конвертировать为отецплиткаизсистема координат。computedTransformсуществовать更新плитка Конвертироватьматрицачасбыть пересчитан。еслиплитка没有отецплитка,Тогда вычисляемая Трансформа — это единичная матрица.
  • content:3Dплиткаизсодержаниеобъект,Обычно содержит географическую информацию, атрибуты данных и другую соответствующую информацию.
  • geometricError:3Dплиткаизгеометрия误差,Представляет максимальную ошибку расстояния 3D-плиток. Cesium использует это свойство для расчета приоритета отображения и уровня детализации 3D-фрагментов.
  • extras:один содержит3Dплиткаиз Любые дополнительныеданныеизобъект。Cesium3DTileсерединаизextrasсвойство允许开发人员хранилище和访问иплитка Связанный联излюбые дополнительныеданные。
  • parent:一个指向отецплиткаизуказатель。отецплиткадакогдавпередплиткаиз Прямой начальник。есликогдавпередплитка没有отецплитка,Тогда родительское свойство будет иметь значение null.
  • transform:один из Модельсистема координатприезжать世界система координатиз4x4матрица。Долженматрицаиспользуется для将3Dплиткасодержаниеобъектот Модель Система координат преобразована в мировую систему координат.。transformматрица通常существовать加载3Dплиткачас Позвонивupdate()рассчитывается по методу。
  • tileset:и3Dплиткаассоциацияиз3Dплитканаборобъект。

Пример загрузки данных 3DTiles в Cesium

Язык кода:javascript
копировать
 try {
    const tileset = await Cesium.Cesium3DTileset.fromIonAssetId(75343);
    viewer.scene.primitives.add(tileset);
  } catch (error) {
    console.log(`Error loading tileset: ${error}`);
  }
  viewer.scene.globe.depthTestAgainstTerrain = true;
boy illustration
RasaGpt — платформа чат-ботов на основе Rasa и LLM.
boy illustration
Nomic Embed: воспроизводимая модель внедрения SOTA с открытым исходным кодом.
boy illustration
Улучшение YOLOv8: EMA основана на эффективном многомасштабном внимании, основанном на межпространственном обучении, и эффект лучше, чем у ECA, CBAM и CA. Малые цели имеют очевидные преимущества | ICASSP2023
boy illustration
Урок 1 серии Libtorch: Тензорная библиотека Silky C++
boy illustration
Руководство по локальному развертыванию Stable Diffusion: подробные шаги и анализ распространенных проблем
boy illustration
Полностью автоматический инструмент для работы с видео в один клик: VideoLingo
boy illustration
Улучшения оптимизации RT-DETR: облегченные улучшения магистрали | Support Paddle облегченный rtdetr-r18, rtdetr-r34, rtdetr-r50, rtdet
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | Деформируемое внимание с большим ядром (D-LKA Attention), большое ядро ​​​​свертки улучшает механизм внимания восприимчивых полей с различными функциями
boy illustration
Создано Datawhale: выпущено «Руководство по тонкой настройке развертывания большой модели GLM-4»!
boy illustration
7B превышает десятки миллиардов, aiXcoder-7B с открытым исходным кодом Пекинского университета — это самая мощная модель большого кода, лучший выбор для корпоративного развертывания.
boy illustration
Используйте модель Huggingface, чтобы заменить интерфейс внедрения OpenAI в китайской среде.
boy illustration
Оригинальные улучшения YOLOv8: несколько новых улучшений | Сохранение исходной информации — алгоритм отделяемой по глубине свертки (MDSConv) |
boy illustration
Второй пилот облачной разработки | Быстро поиграйте со средствами разработки на базе искусственного интеллекта
boy illustration
Бесшовная интеграция, мгновенный интеллект [1]: платформа больших моделей Dify-LLM, интеграция с нулевым кодированием и встраивание в сторонние системы, более 42 тысяч звезд, чтобы стать свидетелями эксклюзивных интеллектуальных решений.
boy illustration
Решенная Ошибка | Загрузка PyTorch медленная: TimeoutError: [Errno 110] При загрузке факела истекло время ожидания — Cat Head Tiger
boy illustration
Brother OCR, библиотека с открытым исходным кодом для Python, которая распознает коды проверки.
boy illustration
Новейшее подробное руководство по загрузке и использованию последней демонстрационной версии набора данных COCO.
boy illustration
Выпущен отчет о крупной модели финансовой отрасли за 2023 год | Полный текст включен в загрузку |
boy illustration
Обычные компьютеры также могут работать с большими моделями, и вы можете получить личного помощника с искусственным интеллектом за три шага | Руководство для начинающих по локальному развертыванию LLaMA-3
boy illustration
Одной статьи достаточно для анализа фактора транскрипции SCENIC на Python (4)
boy illustration
Бросая вызов ограничениям производительности небольших видеокарт, он научит вас запускать большие модели глубокого обучения с ограниченными ресурсами, а также предоставит полное руководство по оценке и эффективному использованию памяти графического процессора!
boy illustration
Команда Fudan NLP опубликовала 80-страничный обзор крупномасштабных модельных агентов, в котором в одной статье представлен обзор текущего состояния и будущего агентов ИИ.
boy illustration
[Эксклюзив] Вы должны знать о новой функции JetBrains 2024.1 «Полнострочное завершение кода», чтобы решить вашу путаницу!
boy illustration
Краткое изложение базовых знаний о регистрации изображений 1.0
boy illustration
Новейшее подробное руководство по установке и использованию библиотеки cv2 (OpenCV, opencv-python) в Python.
boy illustration
Легко создайте локальную базу знаний для крупных моделей на основе Ollama+AnythingLLM.
boy illustration
[Решено] ошибка установки conda. Среда решения: не удалось выполнить первоначальное зависание решения. Повторная попытка с помощью файла (графическое руководство).
boy illustration
Одна статья поможет вам понять RAG (Retrival Enhanced Generation) | Введение в концепцию и теорию + практику работы с кодом (включая исходный код).
boy illustration
Эволюция архитектуры шлюза облачной разработки
boy illustration
Docker и Kubernetes [Разработка контейнерных приложений с помощью Python]