Системные требования

CesiumJS представляет собой высокопроизводительную JavaScript-библиотеку для визуализации трёхмерных геопространственных данных в веб-браузере. Производительность приложения напрямую зависит не только от качества программного кода, но и от аппаратного обеспечения, браузера, графического ускорителя и настроек окружения.

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


Поддерживаемые операционные системы

CesiumJS функционирует внутри браузера и не зависит от конкретной операционной системы. Поддерживаются любые современные платформы, способные запускать актуальные браузеры с поддержкой WebGL.

Наиболее распространённые варианты:

  • Windows 10 и новее;
  • Windows Server;
  • Linux-дистрибутивы;
  • macOS;
  • ChromeOS;
  • мобильные платформы Android;
  • iOS и iPadOS.

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


Требования к браузеру

Обязательная поддержка WebGL

CesiumJS использует WebGL в качестве основного механизма рендеринга трёхмерной сцены.

Без поддержки WebGL приложение не сможет отобразить:

  • трёхмерный глобус;
  • объекты сцены;
  • 3D Tiles;
  • модели glTF;
  • векторные примитивы;
  • эффекты освещения.

Проверка поддержки WebGL выполняется библиотекой автоматически во время инициализации Viewer.

Пример проверки:

if (!Cesium.FeatureDetection.supportsWebgl()) {
    alert("WebGL не поддерживается");
}

Рекомендуемые браузеры

Наиболее стабильная работа наблюдается в следующих браузерах:

  • Google Chrome;
  • Microsoft Edge;
  • Mozilla Firefox;
  • Safari.

Для производственных систем рекомендуется использовать последние стабильные версии браузеров.

Устаревшие браузеры

Не рекомендуется использование:

  • Internet Explorer;
  • старых версий Edge на движке EdgeHTML;
  • устаревших мобильных браузеров;
  • браузеров без аппаратного ускорения.

Многие современные возможности CesiumJS в таких средах либо недоступны, либо работают с серьёзными ограничениями.


Поддержка WebGL 1 и WebGL 2

WebGL 1

Исторически CesiumJS поддерживал WebGL 1 для обеспечения совместимости со старыми устройствами.

Возможности:

  • базовая трёхмерная визуализация;
  • текстурирование;
  • работа с геометрией;
  • отображение моделей.

Недостатки:

  • ограниченная производительность;
  • меньшее количество доступных расширений;
  • повышенная нагрузка на процессор.

WebGL 2

Современные версии CesiumJS ориентированы на использование WebGL 2.

Преимущества:

  • более эффективная работа с памятью;
  • улучшенная обработка текстур;
  • расширенные возможности шейдеров;
  • более высокая скорость рендеринга;
  • поддержка крупных наборов данных.

Для серьёзных проектов рекомендуется использовать устройства с полноценной поддержкой WebGL 2.


Аппаратное ускорение

Значение GPU

Основная часть графических вычислений выполняется видеокартой.

На GPU возлагаются задачи:

  • построение геометрии;
  • рендеринг ландшафта;
  • отрисовка моделей;
  • работа с освещением;
  • визуализация атмосферных эффектов;
  • отображение миллионов точек и полигонов.

Без аппаратного ускорения производительность резко снижается.

Проверка состояния ускорения

В браузерах семейства Chromium информацию можно получить через:

chrome://gpu

Здесь отображаются:

  • активность аппаратного ускорения;
  • поддерживаемые возможности WebGL;
  • информация о графическом адаптере;
  • обнаруженные ограничения драйверов.

Требования к центральному процессору

Хотя рендеринг преимущественно выполняется видеокартой, процессор также играет важную роль.

CPU используется для:

  • загрузки данных;
  • обработки запросов;
  • декодирования ресурсов;
  • подготовки геометрии;
  • вычисления пространственных преобразований;
  • работы пользовательской логики приложения.

Минимальная конфигурация

Для простых проектов:

  • двухъядерный процессор;
  • частота от 2 ГГц.

Примеры:

  • Intel Core i3;
  • AMD Ryzen 3;
  • современные мобильные процессоры.

Рекомендуемая конфигурация

Для работы с крупными сценами:

  • 4–8 ядер;
  • высокая производительность на одно ядро.

Примеры:

  • Intel Core i5;
  • Intel Core i7;
  • AMD Ryzen 5;
  • AMD Ryzen 7.

Требования к оперативной памяти

Объём оперативной памяти влияет на возможность хранения:

  • текстур;
  • кэшей тайлов;
  • моделей;
  • пространственных индексов;
  • временных структур данных.

Минимальный объём

Для небольших проектов:

  • 4 ГБ ОЗУ.

Комфортная работа

Для большинства приложений:

  • 8 ГБ ОЗУ.

Работа с большими сценами

Для крупных геоинформационных систем:

  • 16 ГБ и более.

Особенно это важно при использовании:

  • высокодетализированного рельефа;
  • фотограмметрических моделей городов;
  • больших наборов 3D Tiles;
  • облаков точек LiDAR.

Требования к видеокарте

Минимальные требования

Подойдут:

  • встроенные графические адаптеры Intel последних поколений;
  • встроенная графика AMD;
  • мобильные GPU среднего уровня.

Главное условие — поддержка WebGL.

Рекомендуемые требования

Для профессиональных проектов предпочтительны дискретные видеокарты:

  • NVIDIA GeForce;
  • NVIDIA RTX;
  • AMD Radeon;
  • AMD RX.

Преимущества:

  • больший объём видеопамяти;
  • высокая скорость обработки шейдеров;
  • стабильная работа при большом количестве объектов.

Видеопамять

Минимально:

  • 1 ГБ VRAM.

Рекомендуется:

  • 4 ГБ и более.

Для сложных сцен:

  • 8–16 ГБ VRAM.

Сетевые требования

CesiumJS активно взаимодействует с удалёнными источниками данных.

К ним относятся:

  • картографические сервисы;
  • спутниковые снимки;
  • серверы 3D Tiles;
  • WMS;
  • WMTS;
  • REST API;
  • собственные геопространственные сервисы.

Скорость соединения

Минимально:

  • 10 Мбит/с.

Рекомендуется:

  • 50 Мбит/с и выше.

Для потоковой передачи крупных наборов данных высокая пропускная способность существенно влияет на скорость отображения сцены.

Задержка сети

Большая задержка приводит к:

  • медленной загрузке тайлов;
  • заметным паузам при перемещении камеры;
  • задержкам отображения моделей.

Для интерактивных систем желательно использовать инфраструктуру с минимальным временем отклика.


Требования к серверной части

Сам CesiumJS выполняется на стороне клиента, однако многие проекты используют серверные компоненты.

Типичные задачи сервера:

  • хранение данных;
  • публикация тайлов;
  • обработка запросов;
  • генерация геоданных;
  • авторизация пользователей.

Веб-сервер

Подходят:

  • Nginx;
  • Apache;
  • Node.js;
  • IIS.

Статический хостинг

Для демонстрационных проектов достаточно любого статического веб-сервера.

Например:

index.html
app.js
Cesium/

После размещения файлов приложение может работать без серверной бизнес-логики.


Требования к среде разработки

Редакторы кода

Наиболее распространённые инструменты:

  • Visual Studio Code;
  • WebStorm;
  • Sublime Text;
  • Vim;
  • Neovim.

Node.js

Для современных проектов обычно используется Node.js.

Он необходим для:

  • установки пакетов;
  • запуска сборщиков;
  • тестирования;
  • локального сервера разработки.

Типичная проверка версии:

node -v
npm -v

Менеджеры пакетов

Поддерживаются:

  • npm;
  • yarn;
  • pnpm.

Пример установки:

npm install cesium

Требования к сборщикам проектов

CesiumJS может использоваться как без сборки, так и внутри современных инструментов разработки.

Наиболее популярные решения:

  • Vite;
  • Webpack;
  • Rollup;
  • Parcel.

Для крупных приложений использование сборщика становится практически обязательным.

Преимущества:

  • оптимизация ресурсов;
  • разделение кода;
  • минификация;
  • автоматическое обновление страницы;
  • удобная работа с модулями.

Ограничения мобильных устройств

Мобильные платформы поддерживают CesiumJS, однако обладают рядом ограничений.

Ограничения памяти

На смартфонах обычно доступны:

  • меньшие объёмы RAM;
  • меньшие объёмы VRAM;
  • агрессивная очистка памяти браузером.

Следствия:

  • повторная загрузка тайлов;
  • выгрузка ресурсов;
  • снижение стабильности при сложных сценах.

Ограничения производительности

Мобильные GPU уступают настольным решениям.

Поэтому рекомендуется:

  • уменьшать детализацию;
  • ограничивать количество объектов;
  • использовать оптимизированные модели;
  • снижать разрешение текстур.

Поддержка 3D Tiles

Технология 3D Tiles является одним из ключевых компонентов экосистемы Cesium.

Для эффективной работы требуются:

  • современный браузер;
  • поддержка WebGL 2;
  • достаточный объём видеопамяти;
  • стабильное сетевое соединение.

При работе с городскими моделями объём передаваемых данных может составлять сотни мегабайт и более.


Поддержка моделей glTF и glb

CesiumJS активно использует формат glTF.

На требования системы влияют:

  • число полигонов;
  • размер текстур;
  • количество материалов;
  • наличие анимации.

Пример модели:

const model = await Cesium.Model.fromGltfAsync({
    url: "aircraft.glb"
});

При загрузке сложных моделей существенно возрастает нагрузка на:

  • память;
  • GPU;
  • пропускную способность сети.

Факторы, влияющие на производительность

Наиболее существенное влияние оказывают:

  1. Количество отображаемых объектов.
  2. Размер текстур.
  3. Разрешение экрана.
  4. Производительность GPU.
  5. Скорость загрузки тайлов.
  6. Сложность пользовательских шейдеров.
  7. Количество одновременно загруженных моделей.
  8. Использование постобработки.
  9. Детализация рельефа.
  10. Объём доступной памяти.

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