Compartilhar via


Método ID3DXPRTEngine::ComputeDirectLightingSHGPU

Usa a GPU para calcular a contribuição de iluminação direta para objetos 3D em que o radiamento de origem é representado por uma aproximação harmônica esférica (SH). A computação da iluminação na GPU geralmente será muito mais rápida do que na CPU.

Sintaxe

HRESULT ComputeDirectLightingSHGPU(
  [in]      LPDIRECT3DDEVICE9 pDevice,
  [in]      UINT              Flags,
  [in]      UINT              Order,
  [in]      FLOAT             ZBias,
  [in]      FLOAT             ZAngleBias,
  [in, out] LPD3DXPRTBUFFER   pDataOut
);

Parâmetros

pDevice [in]

Tipo: LPDIRECT3DDEVICE9

Ponteiro para o objeto de dispositivo IDirect3DDevice9 usado para executar a simulação na GPU. O dispositivo deve dar suporte a sombreadores de pixel ps_2_0 .

Observação

As funções de retorno de chamada não devem usar o objeto de dispositivo IDirect3DDevice9 usado pelo simulador de GPU.

 

Sinalizadores [in]

Tipo: UINT

Parâmetro de simulação de GPU que define a resolução do buffer z de sombra. Deve ser definido como um dos valores constantes de D3DXSHGPUSIMOPT. Para especificar uma simulação de precisão mais alta, o valor de D3DXSHGPUSIMOPT_HIGHQUALITY pode ser combinado com um dos valores D3DXSHGPUSIMOPT_SHADOWRESxxx.

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.

ZBias [in]

Tipo: FLOAT

Desvio na direção normal.

ZAngleBias [in]

Tipo: FLOAT

Desvio na direção normal, dimensionado em um menos o cosseno do ângulo com o raio de luz.

pDataOut [in, out]

Tipo: LPD3DXPRTBUFFER

Ponteiro para um objeto ID3DXPRTBuffer . Esse buffer deve ter o número adequado de canais de cores alocados para a simulação.

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

Nesse método, o albedo não é multiplicado pelo sinal de luz e apenas a luz de entrada é integrada ao simulador. Ao não multiplicar o albedo, você pode modelar a variação albedo em uma escala mais fina do que o brilho de origem, gerando assim resultados mais precisos da compactação.

Chame MultiplyAlbedo para multiplicar cada vetor prt (transferência de radiação pré-computada) pelo albedo.

Requisitos

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

Confira também

ID3DXPRTEngine