Share via


Função D3DXSHEvalDirectionalLight (D3DX10.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 Spherical Harmonics MathXMSHEvalDirectionalLight.

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,
  _In_       FLOAT       *pROut,
  _In_       FLOAT       *pGOut,
  _In_       FLOAT       *pBOut
);

Parâmetros

Order [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 [in]

Tipo: FLOAT*

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

pGOut [in]

Tipo: FLOAT*

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

pBOut [in]

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 radiamento 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 espectral; 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 cartesianas (x, y, z) e esféricas (theta, phi) na esfera de unidade. O ângulo theta 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
D3DX10.h
Biblioteca
D3DX10.lib

Confira também

Funções Matemáticas