Partager via


ID3DXPRTEngine::ComputeDirectLightingSHGPU, méthode

Utilise le GPU pour calculer la contribution de l’éclairage direct aux objets 3D où le rayonnement source est représenté par une approximation harmonique sphérique (SH). Le calcul de l’éclairage sur le GPU sera généralement beaucoup plus rapide que sur le processeur.

Syntaxe

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

Paramètres

pDevice [in]

Type : LPDIRECT3DDEVICE9

Pointeur vers l’objet d’appareil IDirect3DDevice9 utilisé pour exécuter la simulation sur le GPU. L’appareil doit prendre en charge ps_2_0 nuanceurs de pixels.

Notes

Les fonctions de rappel ne doivent pas utiliser l’objet d’appareil IDirect3DDevice9 utilisé par le simulateur GPU.

 

Indicateurs [in]

Type : UINT

Paramètre de simulation GPU qui définit la résolution de la mémoire tampon z d’ombre. Doit être défini sur l’une des valeurs constantes de D3DXSHGPUSIMOPT. Pour spécifier une simulation de précision supérieure, la valeur D3DXSHGPUSIMOPT_HIGHQUALITY peut être combinée à l’une des valeurs D3DXSHGPUSIMOPT_SHADOWRESxxx.

Ordre [in]

Type : UINT

Ordre de l’évaluation sh. Doit être dans la plage de D3DXSH_MINORDER à D3DXSH_MAXORDER, inclusif. L’évaluation génère des coefficients Order². Le degré de l’évaluation est Order - 1.

ZBias [in]

Type : FLOAT

Biais dans le sens normal.

ZAngleBias [in]

Type : FLOAT

Biais dans le sens normal, mis à l’échelle d’un moins le cosinus de l’angle avec le rayon lumineux.

pDataOut [in, out]

Type : LPD3DXPRTBUFFER

Pointeur vers un objet ID3DXPRTBuffer . Ce tampon doit avoir le nombre approprié de canaux de couleur alloués pour la simulation.

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

Dans cette méthode, l’albédo n’est pas multiplié par le signal lumineux, et seule la lumière entrante est intégrée dans le simulateur. En ne multipliant pas l’albédo, vous pouvez modéliser la variation de l’albédo à une échelle plus fine que le rayonnement source, ce qui donne des résultats plus précis de la compression.

Appelez MultiplyAlbedo pour multiplier chaque vecteur de transfert de rayonnement précalculé (PRT) par l’albédo.

Spécifications

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

Voir aussi

ID3DXPRTEngine