Condividi tramite


Metodo ID3DXPRTEngine::ComputeDirectLightingSHGPU

Usa la GPU per calcolare il contributo diretto dell'illuminazione agli oggetti 3D in cui la radiazione di origine è rappresentata da un'approssimazione armonica sferica (SH). Il calcolo dell'illuminazione sulla GPU sarà in genere molto più veloce rispetto alla CPU.

Sintassi

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

Parametri

pDevice [in]

Tipo: LPDIRECT3DDEVICE9

Puntatore all'oggetto dispositivo IDirect3DDevice9 usato per eseguire la simulazione nella GPU. Il dispositivo deve supportare ps_2_0 pixel shader.

Nota

Le funzioni di callback non devono usare l'oggetto dispositivo IDirect3DDevice9 usato dal simulatore GPU.

 

Flag [in]

Tipo: UINT

Parametro di simulazione GPU che definisce la risoluzione del buffer z shadow. Deve essere impostato su uno dei valori costanti da D3DXSHGPUSIMOPT. Per specificare una simulazione di precisione superiore, il valore D3DXSHGPUSIMOPT_HIGHQUALITY può essere combinato con uno dei valori D3DXSHGPUSIMOPT_SHADOWRESxxx.

Ordine [in]

Tipo: UINT

Ordine della valutazione SH. Deve essere compreso nell'intervallo di D3DXSH_MINORDER per D3DXSH_MAXORDER, inclusivo. La valutazione genera coefficienti Order². Il grado della valutazione è Order - 1.

ZBias [in]

Tipo: FLOAT

Distorsione nella direzione normale.

ZAngleBias [in]

Tipo: FLOAT

Pregiudizio nella direzione normale, ridimensionato da uno meno il cosno dell'angolo con il raggio chiaro.

pDataOut [in, out]

Tipo: LPD3DXPRTBUFFER

Puntatore a un oggetto ID3DXPRTBuffer . Questo buffer deve avere il numero appropriato di canali di colore allocati per la simulazione.

Valore restituito

Tipo: HRESULT

Se il metodo ha esito positivo, il valore restituito è D3D_OK. Se il metodo ha esito negativo, il valore restituito può essere uno dei seguenti: D3DERR_INVALIDCALL, E_OUTOFMEMORY.

Commenti

In questo metodo, l'albedo non viene moltiplicato per il segnale di luce e solo la luce in ingresso è integrata nel simulatore. Non moltiplicando l'albedo, è possibile modellare la variazione albedo a una scala più fine rispetto alla radiazione di origine, ottenendo così risultati più accurati dalla compressione.

Chiamare MultipliAlbedo per moltiplicare ogni vettore di radianza precompilate (PRT) dall'albedo.

Requisiti

Requisito Valore
Intestazione
D3DX9Mesh.h
Libreria
D3dx9.lib

Vedi anche

ID3DXPRTEngine