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


Преобразования пространства камеры

Вершины в пространстве камеры вычисляются путем преобразования вершин объектов с матрицей представления мира.

V = V * wvMatrix

Нормали вершины в пространстве камеры вычисляются путем преобразования норм объекта с обратным транспонированием матрицы представления мира. Матрица представления мира может быть или не может быть ортогональной.

N = N * (wvMatrix⁻️)T

Матрица инверсии и транспонирование матрицы работают на матрице 4x4. Умножение объединяет норму с 3x3 частью результирующей матрицы 4x4.

Если состояние отрисовки задано для нормализации нормальности, то векторы вершин нормализуются после преобразования в пространство камеры следующим образом:

N = норм(N)

Положение света в пространстве камеры вычисляется путем преобразования положения источника света с матрицей представления.

Lp = Lp * vMatrix

Направление света в пространстве камеры для направления света вычисляется путем умножения направления источника света на матрицу представления, нормализацию и отрицание результата.

L dir = -norm(Ldir * wvMatrix)

Для точки света и внимания направление света вычисляется следующим образом:

Ldir = norm(V - Lp), где параметры определены в следующей таблице.

Параметр Default value Тип Описание
Ldir Н/П Трехмерный вектор (значения x, y и z с плавающей запятой) Вектор направления от вершины объекта к свету
V Н/П Трехмерный вектор (значения x, y и z с плавающей запятой) Позиция вершины в пространстве камеры
wvMatrix Идентификация Матрица 4x4 значений с плавающей запятой Составная матрица, содержащая преобразования мира и представления
N Н/П Трехмерный вектор (значения x, y и z с плавающей запятой) Нормальное вершина
Lp Н/П Трехмерный вектор (значения x, y и z с плавающей запятой) Световая позиция в пространстве камеры
vMatrix Идентификация Матрица 4x4 значений с плавающей запятой Матрица, содержащая преобразование представления

 

Математика освещения