Método ID3DXPRTEngine::ComputeVolumeSamplesDirectSH
Calcula uma projeção de iluminação distante em vetores de base harmônicos esféricos (SH) que representam o radiamento de incidentes em locais especificados.
Sintaxe
HRESULT ComputeVolumeSamplesDirectSH(
[in] UINT OrderIn,
[in] UINT OrderOut,
[in] UINT NumVolSamples.xml,
[in] const D3DXVECTOR3 *pSampleLocs,
[in, out] LPD3DXPRTBUFFER pDataOut
);
Parâmetros
-
OrderIn [in]
-
Tipo: UINT
Ordem da representação sh da iluminação distante. Deve estar no intervalo de D3DXSH_MINORDER para D3DXSH_MAXORDER, inclusive. O grau da avaliação é OrderIn - 1.
-
OrderOut [in]
-
Tipo: UINT
Ordem da representação sh da iluminação local. Deve estar no intervalo de D3DXSH_MINORDER para D3DXSH_MAXORDER, inclusive. O grau da avaliação é OrderOut - 1.
-
NumVolSamples.xml [in]
-
Tipo: UINT
Número de locais de exemplo.
-
pSampleLocs [in]
-
Tipo: const D3DXVECTOR3*
Posição para cada amostra.
-
pDataOut [in, out]
-
Tipo: LPD3DXPRTBUFFER
Ponteiro para um objeto ID3DXPRTBuffer de saída que projeta a iluminação distante em vetores de base SH. Esse buffer deve ter o número adequado de canais de cores alocados para a simulação. Esse método gera os escalares OrderIn² * OrderOut"² por canal em cada local de exemplo.
Valor retornado
Tipo: HRESULT
Se o método for bem-sucedido, o valor retornado será D3D_OK. Se o método falhar, o valor retornado poderá ser um dos seguintes: D3DERR_INVALIDCALL, E_OUTOFMEMORY.
Comentários
Esse método calcula como a luz de uma fonte distante chega a cada ponto no espaço especificado por pSampleLocs. Os coeficientes sh representam o mapeamento, em cada ponto pSampleLocs, da radiação de origem para radiação de incidente transferida.
Para usar esse método com êxito, você deve definir a amostragem em uma esfera com UseSphere = TRUE e UseCosine = FALSE em ID3DXPRTEngine::SetSamplingInfo; caso contrário, esse método retornará um erro com D3DERR_INVALIDCALL.
Requisitos
Requisito | Valor |
---|---|
parâmetro |
|
Biblioteca |
|
Confira também