Введение
Тип растрового изображения в компьютерной графике, модифицирующий геометрию поверхностей или создающий иллюзию этой модификации в компьютерной графике.
modifying the geometry of surfaces or the illusion of this in computer graphics
В компьютерной графике карта высот (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 значений, отображаемая местность выглядит плоской, с "ступенями" в определенных местах. Карты высот широко используются в географических информационных системах, где они называются цифровыми моделями рельефа.
or in specialized file formats such as Daylon Leveller, GenesisIV and Terragen documents. One may also exploit the use of individual color channels to increase detail. For example, a standard RGB 8 bit image can only show 256 values of grey and hence only 256 heights. By using colors, a greater number of heights can be stored (for a 24 bit image, 2563 = 16,777,216 heights can be represented (2564 = 4,294,967,296 if the alpha channel is also used)). This technique is especially useful where height varies slightly over a large area. Using only grey values, because the heights must be mapped to only 256 values, the rendered terrain appears flat, with "steps" in certain places. Heightmaps are commonly used in geographic information systems, where they are called digital elevation models.
Создание
Карты высот можно создавать вручную с помощью классической программы для рисования или специализированного редактора местности. Эти редакторы визуализируют местность в 3D и позволяют пользователю изменять поверхность. Обычно в них есть инструменты для поднятия, опускания, сглаживания или эрозии местности. Другой способ создания местности — использование алгоритма генерации местности. Это может быть, например, 2D-симплексный шум или диффузионно-ограниченная агрегация. Также можно реконструировать карты высот из реальных данных, например, с помощью синтезированной апертуры радара.
Использование
Карты высот широко используются в программном обеспечении для рендеринга местности и современных видеоиграх. Карты высот – идеальный способ хранения цифровых данных о высоте рельефа; по сравнению с обычной полигональной сеткой, они требуют значительно меньше памяти при заданном уровне детализации. Большинство современных программ для 3D-моделирования способны использовать данные из карт высот в виде карт неровностей, карт нормалей или карт смещения для быстрого и точного создания сложного рельефа и других поверхностей. В самых первых играх, использовавших программный рендеринг, элементы часто представляли собой высоты столбцов вокселей, отрисованных методом трассировки лучей. В большинстве современных игр элементы представляют собой координату высоты полигонов в сетке.
Интересные факты
Хотя термины "карта высот" и "поле высот" часто кажутся взаимозаменяемыми, между ними всё же есть небольшая разница. "Карта высот" происходит от математического термина "отображение", а "поле высот" – от математического термина "векторное поле". "Карта высот" является более точным описанием, поскольку большинство полей высот не являются векторными полями в математическом смысле, но всегда представляют собой отображение (как в математическом смысле, так и в визуальном представлении).