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