Compartilhar via


Função D3DXSHEvalDirectionalLight (D3dx9math.h)

Observação

A biblioteca de utilitários D3DX (D3DX 9, D3DX 10 e D3DX 11) foi preterida e não tem suporte para aplicativos da Windows Store.

Observação

Em vez de usar essa função, recomendamos que você use a função de biblioteca de matemática harmônica esféricaXMSHEvalDirectionalLight.

Avalia uma luz direcional e retorna dados espectrais harmônicos esféricos (SH).

Sintaxe

HRESULT D3DXSHEvalDirectionalLight(
  _In_        UINT        Order,
  _In_  const D3DXVECTOR3 *pDir,
  _In_        FLOAT       RIntensity,
  _In_        FLOAT       GIntensity,
  _In_        FLOAT       BIntensity,
  _Out_       FLOAT       *pROut,
  _Out_       FLOAT       *pGOut,
  _Out_       FLOAT       *pBOut
);

Parâmetros

Ordem [in]

Tipo: UINT

Ordem da avaliação de SH. Deve estar no intervalo de D3DXSH_MINORDER para D3DXSH_MAXORDER, inclusive. A avaliação gera coeficientes order². O grau da avaliação é Order – 1.

pDir [in]

Tipo: const D3DXVECTOR3*

Ponteiro para o vetor de direção do eixo do hemisfério (x, y, z) no qual avaliar as funções de base SH. Consulte Observações.

RIntensity [in]

Tipo: FLOAT

A intensidade vermelha da luz.

GIntensity [in]

Tipo: FLOAT

A intensidade verde da luz.

BIntensity [in]

Tipo: FLOAT

A intensidade azul da luz.

pROut [out]

Tipo: FLOAT*

Ponteiro para o vetor SH de saída para o componente vermelho.

pGOut [out]

Tipo: FLOAT*

Ponteiro opcional para o vetor SH de saída para o componente verde.

pBOut [out]

Tipo: FLOAT*

Ponteiro opcional para o vetor SH de saída para o componente azul.

Valor retornado

Tipo: HRESULT

Se a função for bem-sucedida, o valor retornado será D3D_OK. Se a função falhar, o valor retornado poderá ser: D3DERR_INVALIDCALL.

Comentários

O vetor de saída é calculado para que, se a taxa de intensidade R/G/B for igual a 1, o brilho de saída resultante de um ponto diretamente sob a luz em um objeto difuso com um albedo de 1 seria 1,0. Isso calculará três exemplos espectrais; pROut será retornado, enquanto pGOut e pBOut podem ser retornados.

Na esfera com raio de unidade, conforme mostrado na ilustração a seguir, a direção pode ser especificada simplesmente com theta, o ângulo sobre o eixo z na direção à direita e phi, o ângulo de z.

ilustração de uma esfera com raio de unidade

As equações a seguir mostram a relação entre as coordenadas Cartesian (x, y, z) e esféricas (theta, phi) na esfera de unidade. Aeta angular varia acima do intervalo de 0 a 2 pi, enquanto phi varia de 0 a pi.

equações da relação entre coordenadas cartesianas e esféricas

Requisitos

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

Confira também

Funções Matemáticas

Transferência de radiação pré-compilada (Direct3D 9)