Metodo ID3DXPRTEngine::ComputeSSAdaptive

Calcola un vettore di trasferimento che esegue il mapping dello radianza di origine all'uscita dalla radiazione risultante dalla dispersione sottosuperforma, usando il campionamento adattivo e le proprietà dei materiali impostate da ID3DXPRTEngine::SetMeshMaterials. Il metodo genera nuovi vertici e visi sulla mesh per approssimare in modo più accurato il segnale di trasferimento diradizione pre-calcolata (PRT). Questo metodo può essere utilizzato solo per i materiali definiti per vertice in un oggetto mesh.

Sintassi

HRESULT ComputeSSAdaptive(
  [in]      LPD3DXPRTBUFFER pDataIn,
  [in]      FLOAT           AdaptiveThresh,
  [in]      FLOAT           MinEdgeLength,
  [in]      UINT            MaxSubdiv,
  [in, out] LPD3DXPRTBUFFER pDataOut,
  [in, out] LPD3DXPRTBUFFER pDataTotal
);

Parametri

pDataIn [in]

Tipo: LPD3DXPRTBUFFER

Puntatore a un oggetto ID3DXPRTBuffer di input che rappresenta l'oggetto 3D dal rimbalzo della luce precedente. Questo buffer di input deve avere il numero appropriato di canali di colore allocati per la simulazione.

AdaptiveThresh [in]

Tipo: FLOAT

Soglia per il vettore PRT da usare per suddividere vertici e visi mesh. Se minore di 1e-6f, viene specificato un valore predefinito 1e-6f.

MinEdgeLength [in]

Tipo: FLOAT

Lunghezza minima del bordo del viso che verrà generata nel campionamento adattivo. Se il metodo determina che il valore è troppo piccolo, viene specificato un valore dipendente dal modello.

MaxSubdiv [in]

Tipo: UINT

Livello massimo di suddivisione di un viso che verrà usato nel campionamento adattivo. Se zero, viene specificato un valore predefinito pari a 4.

pDataOut [in, out]

Tipo: LPD3DXPRTBUFFER

Puntatore a un oggetto ID3DXPRTBuffer di output che modella un singolo rimbalzo della luce a dispersione sottosurface. Questo buffer di output deve avere il numero appropriato di canali di colore allocati per la simulazione.

pDataTotal [in, out]

Tipo: LPD3DXPRTBUFFER

Puntatore a un oggetto ID3DXPRTBuffer facoltativo che corrisponde alla somma in esecuzione di tutti gli output pDataOut precedenti. Può essere NULL.

Valore restituito

Tipo: HRESULT

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

Commenti

Per modellare la dispersione delle sottosurface, chiamare questo metodo per ogni rimbalzo di luce dopo la chiamata di un metodo ID3DXPRTEngine::ComputeDirectLightingSHAdaptive .

L'output di questo metodo non include albedo 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 ID3DXPRTEngine::MultiplyAlbedo per moltiplicare ogni vettore PRT per l'albedo.

Requisiti

Requisito Valore
Intestazione
D3DX9Mesh.h
Libreria
D3dx9.lib

Vedi anche

ID3DXPRTEngine

ID3DXPRTEngine::ComputeBounce

ID3DXPRTEngine::ComputeSS