Введение

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

В компьютерной графике карта высот (heightmap) или высотное поле – это растровое изображение, используемое главным образом в качестве дискретной глобальной сетки для вторичного моделирования рельефа. Каждый пиксель хранит значения, такие как данные о высоте поверхности, для отображения в 3D-компьютерной графике. Карту высот можно использовать в bump mapping для расчета того, где эти 3D-данные создадут тени в материале, в displacement mapping для смещения фактического геометрического положения точек на текстурированной поверхности или для создания местности, где карта высот преобразуется в 3D-сетку. Карта высот содержит один канал, интерпретируемый как расстояние смещения или "высота" от "пола" поверхности, и иногда визуализируется как яркость изображения в оттенках серого, где черный цвет представляет минимальную высоту, а белый – максимальную высоту. При рендеринге карты дизайнер может указать величину смещения для каждой единицы канала высоты, что соответствует "контрасту" изображения. Карты высот могут храниться самостоятельно в существующих форматах изображений в оттенках серого, с или без специализированных метаданных, или в специализированных форматах файлов, таких как документы Daylon Leveller, GenesisIV и Terragen. Также можно использовать отдельные цветовые каналы для повышения детализации. Например, стандартное 8-битное RGB-изображение может отображать только 256 значений серого и, следовательно, только 256 высот. Используя цвета, можно сохранить большее количество высот (для 24-битного изображения можно представить 256³ = 16 777 216 высот (256⁴ = 4 294 967 296, если также используется альфа-канал)). Этот метод особенно полезен там, где высота незначительно меняется на большой площади. При использовании только оттенков серого, поскольку высоты должны быть отображены только на 256 значений, отображаемая местность выглядит плоской, с "ступенями" в определенных местах. Карты высот широко используются в географических информационных системах, где они называются цифровыми моделями рельефа.

Создание

Карты высот можно создавать вручную с помощью классической программы для рисования или специализированного редактора местности. Эти редакторы визуализируют местность в 3D и позволяют пользователю изменять поверхность. Обычно в них есть инструменты для поднятия, опускания, сглаживания или эрозии местности. Другой способ создания местности — использование алгоритма генерации местности. Это может быть, например, 2D-симплексный шум или диффузионно-ограниченная агрегация. Также можно реконструировать карты высот из реальных данных, например, с помощью синтезированной апертуры радара.

Использование

Карты высот широко используются в программном обеспечении для рендеринга местности и современных видеоиграх. Карты высот – идеальный способ хранения цифровых данных о высоте рельефа; по сравнению с обычной полигональной сеткой, они требуют значительно меньше памяти при заданном уровне детализации. Большинство современных программ для 3D-моделирования способны использовать данные из карт высот в виде карт неровностей, карт нормалей или карт смещения для быстрого и точного создания сложного рельефа и других поверхностей. В самых первых играх, использовавших программный рендеринг, элементы часто представляли собой высоты столбцов вокселей, отрисованных методом трассировки лучей. В большинстве современных игр элементы представляют собой координату высоты полигонов в сетке.

Интересные факты

Хотя термины "карта высот" и "поле высот" часто кажутся взаимозаменяемыми, между ними всё же есть небольшая разница. "Карта высот" происходит от математического термина "отображение", а "поле высот" – от математического термина "векторное поле". "Карта высот" является более точным описанием, поскольку большинство полей высот не являются векторными полями в математическом смысле, но всегда представляют собой отображение (как в математическом смысле, так и в визуальном представлении).