CesiumJS предоставляет набор флагов уровня Viewer,
позволяющих включать диагностическую визуализацию сцены без изменения
бизнес-логики приложения. Эти режимы ориентированы на анализ
производительности, геометрии и рендеринга.
Ключевые параметры:
viewer.scene.debugShowFramesPerSecond — отображение
текущего FPS прямо в сценеviewer.scene.globe.depthTestAgainstTerrain — проверка
перекрытия геометрии рельефомviewer.scene.globe.show — временное отключение
отрисовки глобусаviewer.scene.skyBox.show и
viewer.scene.skyAtmosphere.show — исключение фоновых
эффектов для изоляции рендерингаОтдельное значение имеет переключение FPS-индикатора, который позволяет фиксировать деградацию производительности при изменении плотности тайлов, включении 3D Tiles или динамической подгрузке данных.
Глобус CesiumJS содержит встроенные визуализации геометрии и пространственных структур.
Основные debug-флаги:
viewer.scene.globe.showWireframe — отображение
каркасной сетки поверхностиviewer.scene.globe.enableLighting — проверка влияния
освещения на террейнviewer.scene.globe.translucency.enabled — анализ
полупрозрачности слоёвviewer.scene.globe.tileCacheSize — косвенный контроль
поведения кэша тайловКаркасный режим особенно полезен при анализе плотности сетки terrain provider и выявлении зон избыточной детализации, приводящих к падению FPS.
Низкоуровневый слой Primitive и
GroundPrimitive содержит инструменты диагностики геометрии
и bounding volumes.
Распространённые режимы:
primitive.debugShowBoundingVolume — визуализация
bounding volume (сферы/коробки)primitive.debugWireframe — отображение треугольной
сеткиprimitive.show — отключение/включение рендера без
удаления из сценыBounding volumes позволяют анализировать эффективность culling-а. При корректной работе системы отсечения в кадр должны попадать только пересекающиеся объекты, остальные — исключаться на уровне CPU/GPU.
Механизм 3D Tiles имеет собственные встроенные инструменты диагностики, так как является одной из наиболее сложных подсистем CesiumJS.
Основные свойства Cesium3DTileset:
tileset.debugShowBoundingVolume — отображение bounding
volumes тайловtileset.debugShowContentBoundingVolume — визуализация
контента тайловtileset.debugShowMemoryUsage — отображение потребления
памятиtileset.debugWireframe — каркасная геометрия 3D
Tilestileset.maximumScreenSpaceError — контроль уровня
детализации LODtileset.debugColorizeTiles — окрашивание тайлов по
состоянию загрузки и LODОсобое значение имеет визуализация состояния тайлового дерева: активные, разгруженные, ожидающие загрузки. Цветовая индикация позволяет выявлять проблемы с LOD-скейлингом и некорректными геометрическими ошибками.
CesiumInspector представляет собой встроенный
UI-инструмент анализа сцены. Он предоставляет доступ к ряду визуальных
диагностик без ручной настройки флагов.
Основные функции:
Инспектор ориентирован на диагностику рендер-пайплайна WebGL и позволяет выявлять узкие места на уровне GPU.
Камера является критическим компонентом производительности, особенно при работе с большими сценами и 3D Tiles.
Инструменты анализа:
Frustum-culling визуализация позволяет оценить, какие объекты исключаются из рендера до стадии растеризации.
Объект scene содержит дополнительные диагностические
флаги:
scene.debugShowCommands — отображение команд
отрисовкиscene.debugShowFrustums — визуализация всех
frustum-проекцийscene.debugShowFramesPerSecond — FPS overlayscene.pickTranslucentDepth — проверка корректности
picking прозрачных объектовscene.logarithmicDepthBuffer — анализ точности глубины
на больших расстоянияхLogarithmic depth buffer используется для устранения z-fighting на масштабах планеты. Отладка этого режима помогает выявить артефакты пересечения геометрии при больших радиусах сцены.
Система picking в CesiumJS позволяет определять объекты под курсором
через scene.pick и scene.drillPick.
Диагностические аспекты:
id объектовПри сложных сценах часто используется drillPick,
возвращающий полный стек объектов в точке экрана, что позволяет
анализировать перекрытия и приоритеты рендеринга.
Для анализа нагрузки используются внутренние метрики Cesium:
FPS-индикатор часто дополняется внешними профайлерами браузера, однако встроенные метрики позволяют локализовать проблемы именно в pipeline CesiumJS.
Режим:
scene.requestRenderMode = true;
переводит рендеринг в событийный режим, при котором кадры создаются только при изменении сцены.
Диагностические эффекты:
Этот режим часто используется для поиска скрытых перерисовок, вызванных некорректными подписками на события.
Terrain subsystem включает дополнительные механизмы диагностики:
Ошибки в terrain provider часто проявляются как разрывы поверхности или скачки высот при изменении масштаба камеры.
CesiumJS опирается на WebGL 1/2, что позволяет использовать стандартные GPU-инструменты:
Дополнительно включаются debug-режимы контекста WebGL через расширенные параметры контекста, позволяющие фиксировать ошибки GPU pipeline.
Внутренние события CesiumJS могут быть отследены через систему логов:
При интенсивной загрузке 3D Tiles логирование позволяет восстановить последовательность принятия решений LOD-алгоритмом и выявить неоптимальные пути traversal дерева тайлов.
Система кэширования CesiumJS критична для стабильной работы больших сцен.
Отладочные параметры:
При перегрузке памяти наблюдается постоянная перекомпиляция GPU ресурсов и деградация производительности, что фиксируется через debug memory overlays и инспектор 3D Tiles.