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


Функция D3DXMatrixShadow (D3DX10Math.h)

Примечание

Служебная библиотека D3DX10 устарела. Вместо этого рекомендуется использовать DirectXMath .

Создает матрицу, которая преобразует геометрию в плоскость в плоскую структуру.

Синтаксис

D3DXMATRIX* D3DXMatrixShadow(
  _Inout_       D3DXMATRIX  *pOut,
  _In_    const D3DXVECTOR4 *pLight,
  _In_    const D3DXPLANE   *pPlane
);

Параметры

pOut [in, out]

Тип: D3DXMATRIX*

Указатель на структуру D3DXMATRIX , которая является результатом операции.

PLight [in]

Тип: const D3DXVECTOR4*

Указатель на D3DXVECTOR4 , описывающий положение света.

pPlane [in]

Тип: const D3DXPLANE*

Указатель на исходный D3DXPLANE.

Возвращаемое значение

Тип: D3DXMATRIX*

Указатель на структуру D3DXMATRIX, которая преобразует геометрию в плоскость.

Комментарии

Функция D3DXMatrixShadow преобразует геометрию в плоскость, как будто отбрасывает тень от света.

Возвращаемое значение для этой функции совпадает с значением, возвращаемым в параметре pOut. Таким образом, функцию D3DXMatrixShadow можно использовать в качестве параметра для другой функции.

Эта функция использует следующую формулу для вычисления возвращаемой матрицы.

P = normalize(Plane);
L = Light;
d = dot(P, L)

P.a * L.x + d  P.a * L.y      P.a * L.z      P.a * L.w  
P.b * L.x      P.b * L.y + d  P.b * L.z      P.b * L.w  
P.c * L.x      P.c * L.y      P.c * L.z + d  P.c * L.w  
P.d * L.x      P.d * L.y      P.d * L.z      P.d * L.w + d

Если w-компонент света равен 0, луч от источника к свету представляет направленный свет. Если значение равно 1, то свет является точечным светом.

Требования

Требование Значение
Заголовок
D3DX10Math.h
Библиотека
D3DX10.lib

См. также раздел

Математические функции