CesiumJS представляет собой высокопроизводительную JavaScript-библиотеку для визуализации трёхмерных геопространственных данных в веб-браузере. Производительность приложения напрямую зависит не только от качества программного кода, но и от аппаратного обеспечения, браузера, графического ускорителя и настроек окружения.
При работе с глобусом, спутниковыми снимками, 3D-моделями, тайловыми картами, облаками точек и большими наборами геоданных библиотека активно использует возможности графического процессора (GPU), поэтому системные требования играют важную роль как на этапе разработки, так и при эксплуатации готового решения.
CesiumJS функционирует внутри браузера и не зависит от конкретной операционной системы. Поддерживаются любые современные платформы, способные запускать актуальные браузеры с поддержкой WebGL.
Наиболее распространённые варианты:
Поскольку основная вычислительная нагрузка переносится в браузер, ключевым фактором является не сама операционная система, а поддержка современных веб-стандартов.
CesiumJS использует WebGL в качестве основного механизма рендеринга трёхмерной сцены.
Без поддержки WebGL приложение не сможет отобразить:
Проверка поддержки WebGL выполняется библиотекой автоматически во время инициализации Viewer.
Пример проверки:
if (!Cesium.FeatureDetection.supportsWebgl()) {
alert("WebGL не поддерживается");
}
Наиболее стабильная работа наблюдается в следующих браузерах:
Для производственных систем рекомендуется использовать последние стабильные версии браузеров.
Не рекомендуется использование:
Многие современные возможности CesiumJS в таких средах либо недоступны, либо работают с серьёзными ограничениями.
Исторически CesiumJS поддерживал WebGL 1 для обеспечения совместимости со старыми устройствами.
Возможности:
Недостатки:
Современные версии CesiumJS ориентированы на использование WebGL 2.
Преимущества:
Для серьёзных проектов рекомендуется использовать устройства с полноценной поддержкой WebGL 2.
Основная часть графических вычислений выполняется видеокартой.
На GPU возлагаются задачи:
Без аппаратного ускорения производительность резко снижается.
В браузерах семейства Chromium информацию можно получить через:
chrome://gpu
Здесь отображаются:
Хотя рендеринг преимущественно выполняется видеокартой, процессор также играет важную роль.
CPU используется для:
Для простых проектов:
Примеры:
Для работы с крупными сценами:
Примеры:
Объём оперативной памяти влияет на возможность хранения:
Для небольших проектов:
Для большинства приложений:
Для крупных геоинформационных систем:
Особенно это важно при использовании:
Подойдут:
Главное условие — поддержка WebGL.
Для профессиональных проектов предпочтительны дискретные видеокарты:
Преимущества:
Минимально:
Рекомендуется:
Для сложных сцен:
CesiumJS активно взаимодействует с удалёнными источниками данных.
К ним относятся:
Минимально:
Рекомендуется:
Для потоковой передачи крупных наборов данных высокая пропускная способность существенно влияет на скорость отображения сцены.
Большая задержка приводит к:
Для интерактивных систем желательно использовать инфраструктуру с минимальным временем отклика.
Сам CesiumJS выполняется на стороне клиента, однако многие проекты используют серверные компоненты.
Типичные задачи сервера:
Подходят:
Для демонстрационных проектов достаточно любого статического веб-сервера.
Например:
index.html
app.js
Cesium/
После размещения файлов приложение может работать без серверной бизнес-логики.
Наиболее распространённые инструменты:
Для современных проектов обычно используется Node.js.
Он необходим для:
Типичная проверка версии:
node -v
npm -v
Поддерживаются:
Пример установки:
npm install cesium
CesiumJS может использоваться как без сборки, так и внутри современных инструментов разработки.
Наиболее популярные решения:
Для крупных приложений использование сборщика становится практически обязательным.
Преимущества:
Мобильные платформы поддерживают CesiumJS, однако обладают рядом ограничений.
На смартфонах обычно доступны:
Следствия:
Мобильные GPU уступают настольным решениям.
Поэтому рекомендуется:
Технология 3D Tiles является одним из ключевых компонентов экосистемы Cesium.
Для эффективной работы требуются:
При работе с городскими моделями объём передаваемых данных может составлять сотни мегабайт и более.
CesiumJS активно использует формат glTF.
На требования системы влияют:
Пример модели:
const model = await Cesium.Model.fromGltfAsync({
url: "aircraft.glb"
});
При загрузке сложных моделей существенно возрастает нагрузка на:
Наиболее существенное влияние оказывают:
Даже на мощном оборудовании неоптимизированные сцены могут работать медленно, поэтому системные требования следует рассматривать совместно с архитектурой приложения и методами оптимизации данных.