Partager via


ID3DXPRTEngine::ComputeVolumeSamplesDirectSH, méthode

Calcule une projection de l’éclairage distant dans des vecteurs de base harmoniques (SH) sphériques qui représentent le rayonnement incident à des emplacements spécifiés.

Syntaxe

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

Paramètres

OrderIn [in]

Type : UINT

Ordre de la représentation SH de l’éclairage distant. Doit être dans la plage de D3DXSH_MINORDER à D3DXSH_MAXORDER, inclusive. Le degré de l’évaluation est OrderIn - 1.

OrderOut [in]

Type : UINT

Ordre de la représentation SH de l’éclairage local. Doit être dans la plage de D3DXSH_MINORDER à D3DXSH_MAXORDER, inclusive. Le degré de l’évaluation est OrderOut - 1.

NumVolSamples.xml [in]

Type : UINT

Nombre d’emplacements d’exemples.

pSampleLocs [in]

Type : const D3DXVECTOR3*

Position de chaque échantillon.

pDataOut [in, out]

Type : LPD3DXPRTBUFFER

Pointeur vers un objet ID3DXPRTBuffer de sortie qui projette l’éclairage distant dans des vecteurs de base SH. Ce tampon doit avoir le nombre approprié de canaux de couleur alloués pour la simulation. Cette méthode génère des scalaires OrderIn² * OrderOut"² par canal à chaque emplacement d’exemple.

Valeur retournée

Type : HRESULT

Si la méthode réussit, la valeur de retour est D3D_OK. Si la méthode échoue, la valeur de retour peut être l’une des suivantes : D3DERR_INVALIDCALL, E_OUTOFMEMORY.

Notes

Cette méthode calcule comment la lumière d’une source distante arrive à chaque point de l’espace spécifié par pSampleLocs. Les coefficients SH représentent le mappage, à chaque point pSampleLocs, du rayonnement source au rayonnement d’incident transféré.

Pour utiliser correctement cette méthode, vous devez définir l’échantillonnage sur une sphère avec UseSphere = TRUE et UseCosine = FALSE dans ID3DXPRTEngine::SetSamplingInfo ; sinon, cette méthode retourne une erreur avec D3DERR_INVALIDCALL.

Spécifications

Condition requise Valeur
En-tête
D3DX9Mesh.h
Bibliothèque
D3dx9.lib

Voir aussi

ID3DXPRTEngine

ID3DXPRTEngine::ComputeVolumeSamples