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


Формулы сопоставления ударов (Direct3D 9)

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

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

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

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

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

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

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

Сопоставление ударов