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


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

Примечание

Служебная библиотека D3DX является устаревшей. Вместо этого рекомендуется использовать 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, то свет является точечным светом.

Требования

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

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

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