Визуальная настройка растровых слоёв в CesiumJS строится на
параметрах постобработки изображений, применяемых к
ImageryLayer. Эти параметры позволяют управлять восприятием
данных на глобусе без изменения исходных тайлов. Основные регуляторы —
яркость (brightness), контраст (contrast), гамма (gamma), насыщенность
(saturation) и оттенок (hue).
Механизм работает на уровне шейдеров WebGL: каждый пиксель текстуры проходит через математическое преобразование, задаваемое параметрами слоя. Это обеспечивает высокую производительность даже при работе с большим количеством источников данных.
Каждый слой изображений в CesiumJS представлен объектом
ImageryLayer. Для него доступны свойства
цветокоррекции:
brightnesscontrastgammahuesaturationalphaЭти параметры не изменяют исходные данные, а влияют только на финальное отображение.
Пример создания слоя:
const layer = viewer.imageryLayers.addImageryProvider(
new Cesium.IonImageryProvider({ assetId: 2 })
);
После добавления слоя параметры могут быть изменены напрямую.
Яркость определяет линейное усиление интенсивности пикселей. Значение
1.0 соответствует оригинальному изображению.
Диапазон:
Формально применяется линейная операция:
color' = color × brightness
Пример настройки:
layer.brightness = 1.3;
При увеличении яркости усиливаются светлые области, однако возможна потеря деталей в пересвеченных зонах.
Контраст изменяет разницу между тёмными и светлыми участками изображения. В CesiumJS параметр реализуется как масштабирование отклонения цвета от среднего уровня.
Типовая интерпретация:
1.0 — без изменений< 1.0 — снижение контраста (сглаживание)> 1.0 — усиление контрастаМатематическая модель:
color' = (color - 0.5) × contrast + 0.5
Пример применения:
layer.contrast = 1.4;
Высокий контраст усиливает границы объектов, но может привести к потере плавных переходов в растровых данных.
Хотя гамма не является прямым параметром контраста, она часто используется совместно для корректной визуализации спутниковых снимков.
color' = color^(1 / gamma)
Пример:
layer.gamma = 0.8;
Низкие значения делают изображение светлее в тенях, высокие — затемняют средние тона.
Контраст цветности управляет интенсивностью цветового компонента.
layer.saturation = 1.5;
Интерпретация:
0.0 — полностью серое изображение1.0 — оригинальные цвета> 1.0 — усиление цветовой насыщенностиПри увеличении насыщенности контраст между цветами усиливается, но возможны артефакты в естественных текстурах.
Hue выполняет вращение цветового круга, изменяя общий тон изображения.
layer.hue = 0.25;
Диапазон обычно нормализован в пределах [0, 1], где
значение соответствует смещению по цветовому кругу.
Все параметры применяются последовательно в одном пиксельном шейдере. Порядок имеет значение:
Такой пайплайн позволяет комбинировать эффекты без необходимости пересчёта текстур.
В задачах геоинформационной визуализации параметры яркости и контраста используются для:
Пример адаптации слоя под слабоконтрастные данные:
layer.brightness = 1.2;
layer.contrast = 1.35;
layer.gamma = 0.9;
CesiumJS позволяет изменять параметры в реальном времени, что используется в интерфейсах аналитических панелей и визуальных регуляторов.
Пример анимации контраста:
let value = 1.0;
viewer.scene.preRender.addEventListener(() => {
value += 0.01;
if (value > 2.0) value = 0.5;
layer.contrast = value;
});
Цветокоррекция в CesiumJS имеет ряд особенностей:
При работе с несколькими слоями каждый слой имеет собственный набор параметров, что позволяет создавать сложные композиции визуализации.
При наложении нескольких ImageryLayer итоговый результат
зависит от порядка слоёв и их прозрачности:
layer.alpha = 0.6;
layer2.alpha = 0.4;
В сочетании с контрастом и яркостью это может приводить к усилению или подавлению отдельных информационных признаков.
Изменение яркости и контраста напрямую влияет на интерпретацию географической информации:
При аналитической работе важна стабильность параметров, поскольку субъективная настройка может искажать выводы.
Поскольку все операции выполняются на GPU, параметры brightness и contrast:
Это делает их предпочтительными для интерактивных систем визуализации больших географических данных.