Что такое рельефное картирование?
В компьютерной графике, особенно в трехмерной (3D) компьютерной графике, рельефное отображение - это способ нанесения двумерного (2D) изображения на поверхность объекта для изменения внешнего вида его геометрии. Рельефная карта - это 2D-изображение, в котором каждое изображение определяет высоту соответствующего местоположения в 3D-модели или, альтернативно, является прозрачным, чтобы указать, что в данной точке модели нет геометрии. Когда 2D-изображение текстурировано наложено на поверхность 3D-объекта, механизм рендеринга изменит геометрию объекта и переместит каждую точку, связанную с пикселем в 2D-изображении, на определенное расстояние от его исходной координаты на значение, которое соответствует на его текстуру пикселей. Это позволяет получать очень тонкие детали, которые могут реагировать на свет, отбрасывать точные тени и даже покрывать фоновые объекты без необходимости создания мелких, интенсивно использующих память сеток для построения геометрии. Одним из примеров такого типа картирования может быть применение спутниковой фотографии Земли к сфере, при этом рельефное картирование приводит к тому, что точки на поверхности сферы становятся выше там, где есть горы, и остаются плоскими там, где есть океаны.
Рельефное отображение опирается на 2D текстурное изображение для данных, необходимых для визуализации объекта. 2D-изображение состоит из пикселей разных цветов, и каждый цвет переводится в определенную высоту. Большинство этих изображений в градациях серого, потому что легко определить высоту области, когда черный цвет будет равен нулевой высоте, чистый белый будет максимальной высотой, а серые будут составлять значения между ними.
Когда объект имеет 2D-текстуру, примененную для рельефного отображения, местоположение каждого пикселя сопоставляется с точкой в геометрии объекта. Если пиксель текстуры в изображении, называемый текселем, имеет значение, отличное от нуля, то трехмерная координата поверхности модели корректируется на значение пикселя вдали от центра объекта в направлении поверхности обычный. Величина движения, которую представляет каждая единица текселя, может быть установлена на очень низкое значение, поэтому отображение рельефа может быть использовано для создания только незначительных деформаций на поверхности, или оно может быть установлено на высоком уровне, чтобы карта рельефной текстуры переместилась в сильно неровную местность.
Существует много применений для рельефного картирования в компьютерной графике, от отображения 2D картографических карт в 3D до геометрической симуляции очень подробных текстур, таких как тканая поверхность свитера. Следует отметить, что рельефное отображение очень похоже на рельефное отображение, и некоторые программы фактически оптимизируют отображение на расстоянии в пределах сцены, возвращаясь к рельефному отображению. Основное отличие состоит в том, что, хотя некоторые подобные поверхностные эффекты могут быть достигнуты, рельефное отображение фактически никогда не приводит к тому, что геометрия объекта выступает за пределы его основной геометрической формы. Это означает, что, если сфера нанесена на карту с изображением гор, то видимая поверхность будет точно отображать горы, но края сферы и ее тень будут оставаться идеально круглыми. Техника рельефного картографирования фактически изменяет сферу, поэтому ее геометрия точно отражает высоту текстуры.