Partilhar via


Função D3DXMatrixShadow (D3dx9math.h)

Observação

A biblioteca do utilitário D3DX foi preterida. Em vez disso, recomendamos que você use DirectXMath .

Cria uma matriz que nivela a geometria em um plano.

Sintaxe

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

Parâmetros

pOut [in, out]

Tipo: D3DXMATRIX*

Ponteiro para a estrutura D3DXMATRIX que é o resultado da operação.

pLight [in]

Tipo: const D3DXVECTOR4*

Ponteiro para uma estrutura D3DXVECTOR4 que descreve a posição da luz.

pPlane [in]

Tipo: const D3DXPLANE*

Ponteiro para a estrutura D3DXPLANE de origem.

Valor retornado

Tipo: D3DXMATRIX*

Ponteiro para uma estrutura D3DXMATRIX que nivela a geometria em um plano.

Comentários

A função D3DXMatrixShadow nivela a geometria em um plano, como se estivesse lançando uma sombra de uma luz.

O valor retornado para essa função é o mesmo valor retornado no parâmetro pOut . Dessa forma, a função D3DXMatrixShadow pode ser usada como um parâmetro para outra função.

Essa função usa a fórmula a seguir para calcular a matriz retornada.

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

Se o componente w da luz for 0, o raio da origem para a luz representará uma luz direcional. Se for 1, a luz é uma luz de ponto.

Requisitos

Requisito Valor
parâmetro
D3dx9math.h
Biblioteca
D3dx9.lib

Confira também

Funções Matemáticas