Bump Mapping [1] — это метод отображения текстур в компьютерной графике , предназначенный для имитации неровностей и морщин на поверхности объекта. Это достигается за счет возмущения нормалей поверхности объекта и использования возмущенной нормали во время расчетов освещения. В результате получается неровная, а не гладкая поверхность, хотя поверхность лежащего под ней объекта не изменяется. Bump Mapping был представлен Джеймсом Блинном в 1978 году. [2]
Отображение нормалей — это наиболее распространенный вариант отображения рельефа. [3]
Bump Mapping — это метод компьютерной графики , позволяющий сделать визуализированную поверхность более реалистичной за счет моделирования небольших смещений поверхности. Однако, в отличие от отображения смещения , геометрия поверхности не изменяется. Вместо этого изменяется только нормаль к поверхности, как если бы поверхность была смещена. Измененная нормаль поверхности затем используется для расчетов освещения (с использованием, например, модели отражения Фонга ), придавая вид детализации вместо гладкой поверхности.
Наложение рельефа выполняется намного быстрее и потребляет меньше ресурсов при том же уровне детализации по сравнению с отображением смещения, поскольку геометрия остается неизменной.
Существуют также расширения, которые изменяют другие особенности поверхности в дополнение к увеличению ощущения глубины. Двумя такими расширениями являются отображение параллакса и отображение горизонта. [4]
Основное ограничение рельефного отображения заключается в том, что оно возмущает только нормали к поверхности, не изменяя при этом саму основную поверхность. [5] Таким образом, силуэты и тени остаются неизменными, что особенно заметно при больших смоделированных смещениях. Это ограничение можно преодолеть с помощью таких методов, как отображение смещения, когда к поверхности наносятся неровности, или использование изоповерхности .
Существует два основных метода выполнения рельефного картирования. Первый использует карту высот для моделирования смещения поверхности, что дает модифицированную нормаль. Это метод, изобретенный Блинном [2] , и обычно его называют рельефным отображением, если не указано иное. Этапы этого метода суммируются следующим образом.
Прежде чем будет выполнен расчет освещения для каждой видимой точки (или пикселя ) на поверхности объекта:
В результате получается поверхность, которая кажется настоящей глубиной. Алгоритм также гарантирует, что внешний вид поверхности изменится при перемещении источников света в сцене.
Другой метод — указать карту нормалей , которая содержит измененную нормаль непосредственно для каждой точки на поверхности. Поскольку нормаль задается напрямую, а не выводится из карты высот, этот метод обычно приводит к более предсказуемым результатам. Это облегчает работу художникам, что делает этот метод наиболее распространенным сегодня методом рельефного отображения. [3]
Программисты 3D-графики в реальном времени часто используют варианты этого метода, чтобы имитировать рельефное отображение с меньшими вычислительными затратами.
Одним из типичных способов было использование фиксированной геометрии, которая позволяет практически напрямую использовать нормаль к поверхности карты высот. В сочетании с заранее рассчитанной справочной таблицей для расчета освещения этот метод можно реализовать с помощью очень простого и быстрого цикла, позволяющего добиться полноэкранного эффекта. Этот метод был распространенным визуальным эффектом , когда впервые было представлено рельефное отображение.