Partilhar via


Função D3DXSHEvalSphericalLight (D3dx9math.h)

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

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 MathXMSHEvalSphericalLight.

Sintaxe

HRESULT D3DXSHEvalSphericalLight(
  _In_        UINT        Order,
  _In_  const D3DXVECTOR3 *pPos,
  _In_        FLOAT       Radius,
  _In_        FLOAT       RIntensity,
  _In_        FLOAT       GIntensity,
  _In_        FLOAT       BIntensity,
  _Out_       FLOAT       *pROut,
  _Out_       FLOAT       *pGOut,
  _Out_       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.

pPos [in]

Tipo: const D3DXVECTOR3*

Ponteiro para a posição da luz.

Radius [in]

Tipo: FLOAT

Raio de fonte de luz esférica.

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 para o vetor SH de saída para o componente verde.

pBOut [out]

Tipo: FLOAT*

Ponteiro 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

Avalia uma luz esférica e retorna dados SH espectral. Não há normalização da intensidade da luz como há para luzes direcionais, portanto, deve-se tomar cuidado ao especificar as intensidades. 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
D3dx9math.h
Biblioteca
D3dx9.lib

Confira também

Funções Matemáticas

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