Поделиться через


Формулы бамп-маппинга (Direct3D 9)

Direct3D применяет следующие формулы к компонентам DU и DV в каждом пикселе рельефной карты.

формулы преобразований матрицы сопоставления ударов

В этих формулах переменные DU и DV берутся непосредственно из пикселя карты рельефа и преобразуются матрицей 2x2 для получения выходных дельта-значений DU' и DV'. Система использует выходные значения для изменения координат текстуры, которые обращаются к карте среды на следующем этапе обработки текстур. Коэффициенты матрицы преобразования задаются через состояния стадий текстуры D3DTSS_BUMPENVMAT00, D3DTSS_BUMPENVMAT10, D3DTSS_BUMPENVMAT01 и D3DTSS_BUMPENVMAT11.

Помимо значений дельта u и v, система может вычислить значение яркости, которое используется для модуляции цвета карты среды на следующем этапе смешивания, как показано в следующей формуле.

формула выходной яркости, вычисляемая из коэффициента масштабирования и смещения

В этой формуле L' — это вычислимая выходная светимость. Переменная L — это значение яркости, полученное из пикселя карты выпуклостей, которое умножается на коэффициент масштабирования S и смещается на значение переменной O. Состояния текстурного этапа D3DTSS_BUMPENVLSCALE и D3DTSS_BUMPENVLOFFSET управляют значениями переменных S и O в формуле. Эта формула применяется только тогда, когда для этапа, содержащего карту рельефа, установлена операция смешения текстур D3DTOP_BUMPENVMAPLUMINANCE. При использовании D3DTOP_BUMPENVMAP система использует значение 1.0 для L'.

После вычисления выходных разностных значений DU' и DV', система добавляет их в координаты текстуры на следующем этапе текстуры и модулирует выбранный цвет светом, чтобы создать цвет, примененный к многоугольнику.

Бамп-маппинг