Сенсоры в CesiumJS представляют собой параметризованные
геометрические объёмы, используемые для визуализации зон обзора: камер,
радаров, лидаров, спутниковых датчиков и систем наведения. Их основа —
аналитически заданные поверхности второго порядка и конусы с усечением,
объединённые в единую систему сценической геометрии.
На уровне концепции сенсор описывается набором параметров:
- положение в мировых координатах (Cartesian3)
- направление оси наблюдения
- углы раскрытия (inner/outer half-angle)
- дальность действия (radius)
- тип аппроксимации поверхности (cone, pyramid, ellipsoid sector)
- режим отображения (полный объём, только поверхность, только
пересечение)
В CesiumJS такие объекты используются для анализа видимости,
симуляции зон покрытия и построения динамических сцен наблюдения.
Конус обзора как
базовая модель наблюдения
Конус обзора является фундаментальной геометрией для большинства
сенсорных систем. В трёхмерном пространстве он определяется вершиной в
точке установки датчика и направлением вдоль оси взгляда.
Математически конус задаётся набором параметров:
- угол раскрытия θ
- радиус R
- направление оси d⃗
Геометрическая интерпретация
Каждая точка внутри конуса удовлетворяет условию:
- угол между вектором направления и вектором к точке не превышает
θ
- расстояние до вершины не больше R
Такая модель применяется для:
- камер наблюдения
- инфракрасных сенсоров
- направленных антенн
- спутниковых сканеров
Камерный конус и frustum в
CesiumJS
В CesiumJS камера имеет встроенную модель усечённой пирамиды обзора —
view frustum. Она задаётся параметрами проекции:
- PerspectiveFrustum
- OrthographicFrustum
PerspectiveFrustum
Перспективная камера формирует усечённый конус, приближённый к
пирамиде:
- fieldOfView (угол обзора)
- aspectRatio (соотношение сторон)
- nearPlane / farPlane (границы глубины)
Формально это ограниченный конус, обрезанный двумя параллельными
плоскостями.
Связь с сенсорами
Frustum камеры используется как базовая модель:
- определение видимости объектов
- culling (отсечение невидимых объектов)
- построение shadow volumes
- анализ попадания в поле зрения
Сенсорные объёмы Cesium
Sensor Volume
CesiumJS поддерживает расширенную модель сенсоров через концепцию
SensorVolume, которая часто используется в CZML и
специализированных визуализациях.
Основные типы:
1. Rectangular Sensor Volume
Прямоугольный сенсор представляет собой пирамиду с прямоугольным
основанием.
Параметры:
- horizontalHalfAngle
- verticalHalfAngle
- maximumDistance
Применяется в:
- оптических системах
- камерах с матрицей
- системах слежения
2. Conic Sensor Volume
Конусообразный сенсор с круговым основанием.
Параметры:
- outerHalfAngle
- innerHalfAngle (для формирования «пустого» внутреннего конуса)
- radius
Используется для:
- радаров
- направленных передатчиков
- лидарных систем
3. Ellipsoidal Sensor Volume
Обобщённая модель, учитывающая эллипсоидальные искажения поля
зрения.
Позволяет моделировать:
- атмосферные эффекты
- несимметричные зоны покрытия
- спутниковые сканирующие системы
CZML и описание сенсоров
Cesium использует CZML как формат описания динамических сцен, включая
сенсоры.
Пример структуры сенсора:
- position
- orientation
- sensorVolume
- material
- showIntersection
- portionToDisplay
PortionToDisplay
Параметр определяет, какая часть сенсора визуализируется:
- VOLUME_ONLY — только объём
- SURFACE_ONLY — только поверхность
- COMPLETE — полный рендер
Это позволяет гибко управлять визуализацией без изменения
геометрии.
Математика конуса и
пересечения
Условие принадлежности
точки конусу
Для точки P:
- v⃗ = P - O
- cos(α) = (v⃗ · d⃗) / (|v⃗| |d⃗|)
Точка принадлежит конусу, если:
Пересечение с объектами
сцены
Cesium использует:
- bounding spheres
- axis-aligned bounding boxes (AABB)
- oriented bounding boxes (OBB)
Алгоритм:
- Быстрая проверка сферы против конуса
- Уточнение через полиэдральную аппроксимацию
- Проверка вершин/граней объекта
Это важно для:
- оптимизации рендеринга
- анализа видимости
- симуляции засветки
Материалы и визуализация
сенсоров
Сенсорные объёмы не являются просто геометрией — они активно
используют шейдеры.
Основные эффекты:
- градиентная прозрачность по расстоянию
- подсветка границ конуса
- анимация сканирования (radar sweep)
- интерференционные кольца
Шейдерная логика
Фрагментные шейдеры вычисляют:
- угол отклонения от оси
- нормализованную дистанцию
- маску поверхности
На основе этого формируется альфа-канал и цветовая интерполяция.
Взаимодействие
сенсоров с поверхностью Земли
При пересечении сенсорного конуса с геоидом Cesium Terrain система
выполняет:
- дискретизацию поверхности
- проверку глубины (depth testing)
- корректировку по высоте terrain
Особое значение имеет работа с:
- Cesium3DTiles
- terrain exaggeration
- floating origin precision
Динамические сенсоры и
анимация
Сенсоры редко являются статичными объектами. Типовые сценарии:
Поворот платформы
- изменение orientation quaternion
- пересчёт оси конуса
Сканирование
- изменение азимутального угла
- пилообразная или синусоидальная траектория
Импульсные системы
- изменение радиуса во времени
- эффект «пульсации» зоны покрытия
Производительность и
оптимизация
Сенсорные объёмы относятся к тяжёлым для GPU объектам при высокой
детализации.
Основные методы оптимизации:
- LOD для геометрии конуса
- ограничение сегментации окружности
- батчинг материалов
- отсечение вне камеры (frustum culling)
- использование billboarding для дальних объектов
Применение в аналитических
системах
Сенсоры используются не только визуально, но и как аналитический
инструмент:
- анализ зон радиопокрытия
- моделирование наблюдения со спутников
- расчёт «видимости» объектов в городе
- военные и авиационные симуляции
- планирование размещения антенн
Геометрия пересечения
нескольких сенсоров
При наложении нескольких конусов возникает задача:
- вычисление пересечения объёмов
- построение зон общего покрытия
- выявление «слепых зон»
Методы:
- булевы операции над полигональными аппроксимациями
- voxel-based анализ
- аналитическое пересечение конусов через систему неравенств
Связь сенсоров с
системой координат Cesium
Cesium использует глобальную систему WGS84 и локальные касательные
системы:
- East-North-Up (ENU)
- North-East-Down (NED)
Сенсорные оси обычно определяются в локальном пространстве объекта и
затем преобразуются в мировое через матрицы:
- modelMatrix
- orientation quaternion
Это обеспечивает корректную ориентацию при движении по глобусу.
Расширенные модели обзора
Помимо классических конусов используются гибридные модели:
- секторные пирамиды с нелинейным затуханием
- сенсоры с искажённой апертурой
- адаптивные зоны обзора с изменяемой геометрией
Такие модели применяются в высокоточных симуляциях, где стандартный
конус недостаточен для физической достоверности.