Bump mapping [1] - это метод наложения текстуры в компьютерной графике для имитации неровностей и морщин на поверхности объекта. Это достигается за счет изменения нормалей поверхности объекта и использования возмущенной нормали при расчетах освещения. В результате получается явно неровная поверхность, а не гладкая, хотя поверхность нижележащего объекта не изменяется. Рельефное отображение было введено Джеймсом Блинном в 1978 г. [2]
Отображение нормалей - это наиболее распространенный вариант отображения рельефа. [3]
Основы отображения рельефа [ править ]
Рельефное отображение - это метод компьютерной графики, позволяющий сделать визуализированную поверхность более реалистичной за счет имитации небольших смещений поверхности. Однако, в отличие от карты смещения , геометрия поверхности не изменяется. Вместо этого изменяется только нормаль к поверхности, как если бы поверхность была смещена. Затем измененная нормаль к поверхности используется для расчетов освещения (с использованием, например, модели отражения Фонга ), создавая видимость деталей вместо гладкой поверхности.
Отображение рельефа выполняется намного быстрее и требует меньше ресурсов для того же уровня детализации по сравнению с отображением смещения, поскольку геометрия остается неизменной.
Существуют также расширения, которые изменяют другие особенности поверхности в дополнение к увеличению ощущения глубины. [ требуется пояснение ] Отображение параллакса - одно из таких расширений.
Основным ограничением отображения рельефа является то, что оно нарушает только нормали поверхности, не изменяя при этом саму подстилающую поверхность. [4] Силуэты и тени остаются неизменными, что особенно заметно для больших смоделированных смещений. Это ограничение можно преодолеть с помощью методов, включая отображение смещения, когда к поверхности наносятся выпуклости, или с помощью изоповерхности .
Методы [ править ]
Есть два основных метода выполнения карт рельефа. Первый использует карту высот для имитации смещения поверхности, приводящей к измененной нормали. Это метод, изобретенный Блинном [2], и обычно его называют рельефным отображением, если не указано иное. Шаги этого метода резюмируются следующим образом.
Перед выполнением расчета освещения для каждой видимой точки (или пикселя ) на поверхности объекта:
- Найдите высоту на карте высот, которая соответствует положению на поверхности.
- Вычислите нормаль к поверхности карты высот, обычно используя метод конечных разностей .
- Объедините нормаль к поверхности из шага 2 с истинной («геометрической») нормалью к поверхности, чтобы объединенная нормаль указывала в новом направлении.
- Рассчитайте взаимодействие новой «неровной» поверхности с источниками света в сцене, используя, например, модель отражения Фонга .
В результате поверхность имеет реальную глубину. Алгоритм также обеспечивает изменение внешнего вида поверхности по мере перемещения источников света в сцене.
Другой метод - указать карту нормалей, которая содержит измененную нормаль для каждой точки на поверхности напрямую. Поскольку нормаль указывается напрямую, а не выводится из карты высот, этот метод обычно приводит к более предсказуемым результатам. Это упрощает работу художников, что делает его наиболее распространенным методом отображения рельефа на сегодняшний день. [3]
Методы отображения рельефа в реальном времени [ править ]
Программисты трехмерной графики в реальном времени часто используют вариации этого метода для имитации рельефного отображения с меньшими вычислительными затратами.
Один из типичных способов - использовать фиксированную геометрию, которая позволяет практически напрямую использовать нормаль поверхности карты высот. В сочетании с предварительно вычисленной таблицей поиска для расчетов освещения этот метод может быть реализован с помощью очень простого и быстрого цикла, обеспечивающего полноэкранный эффект. Этот метод был обычным визуальным эффектом, когда впервые было введено отображение рельефа.
См. Также [ править ]
- Поле расстояния
- Смещение поверхности
- Приветливый
Ссылки [ править ]
- ^ «Рельеф и отображение окружающей среды» (PDF) . ics.uci.edu .
- ^ a b Блинн, Джеймс Ф. "Моделирование морщинистых поверхностей" , Компьютерная графика, Vol. 12 (3), стр. 286-292 SIGGRAPH -ACM (август 1978 г.)
- ^ a b Миккельсен, Мортен (2008). «Повторное моделирование морщинистых поверхностей» (PDF) . п. 7 (раздел 2.2). Архивировано (PDF) из оригинала 26 мая 2019 года . Проверено 5 августа 2011 .
- ^ Синтез карты рельефа в реальном времени , Ян Каутц 1 , Вольфганг Хайдрихи 2 и Ханс-Петер Зайдель 1 , ( 1 Институт информатики Макса Планка, 2 Университет Британской Колумбии)
Внешние ссылки [ править ]
Викискладе есть медиафайлы, связанные с картированием рельефа . |
- Затенение выпуклостей для объемных текстур , Max, NL, Becker, BG, Computer Graphics and Applications, IEEE, июль 1994 г., том 14, выпуск 4, страницы 18-20, ISSN 0272-1716
- Простое создание векторов на пиксель шкалы серого для работы карты рельефа и т. Д.
- Пример отображения рельефа ( Java-апплет )