Condividi tramite


Metodo ID3DXPRTEngine::ComputeVolumeSamplesDirectSH

Calcola una proiezione di illuminazione distante in vettori di base armonica (SH) sferici che rappresentano la radiazione degli eventi imprevisti in posizioni specificate.

Sintassi

HRESULT ComputeVolumeSamplesDirectSH(
  [in]            UINT            OrderIn,
  [in]            UINT            OrderOut,
  [in]            UINT            NumVolSamples.xml,
  [in]      const D3DXVECTOR3     *pSampleLocs,
  [in, out]       LPD3DXPRTBUFFER pDataOut
);

Parametri

OrderIn [in]

Tipo: UINT

Ordine della rappresentazione SH dell'illuminazione distante. Deve essere compreso nell'intervallo di D3DXSH_MINORDER per D3DXSH_MAXORDER, inclusivo. Il grado della valutazione è OrderIn - 1.

OrderOut [in]

Tipo: UINT

Ordine della rappresentazione SH dell'illuminazione locale. Deve essere compreso nell'intervallo di D3DXSH_MINORDER per D3DXSH_MAXORDER, inclusivo. Il grado della valutazione è OrderOut - 1.

NumVolSamples.xml [in]

Tipo: UINT

Numero di posizioni di esempio.

pSampleLocs [in]

Tipo: const D3DXVECTOR3*

Posizione per ogni esempio.

pDataOut [in, out]

Tipo: LPD3DXPRTBUFFER

Puntatore a un oggetto ID3DXPRTBuffer di output che proietta l'illuminazione distante in vettori di base SH. Questo buffer deve avere il numero appropriato di canali di colore allocati per la simulazione. Questo metodo genera OrderIn² * OrderOut"² scalari per canale in ogni posizione di esempio.

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

Questo metodo calcola la modalità di arrivo della luce da una fonte distante in ogni punto nello spazio specificato da pSampleLocs. I coefficienti SH rappresentano il mapping, a ogni punto pSampleLocs, della radianza di origine per trasferire la radianza degli eventi imprevisti.

Per usare correttamente questo metodo, è necessario impostare il campionamento su una sfera con UseSphere = TRUE e UseCosine = FALSE in ID3DXPRTEngine::SetSamplingInfo; in caso contrario, questo metodo restituirà un errore con D3DERR_INVALIDCALL.

Requisiti

Requisito Valore
Intestazione
D3DX9Mesh.h
Libreria
D3dx9.lib

Vedi anche

ID3DXPRTEngine

ID3DXPRTEngine::ComputeVolumeSamples