Partager via


ID3DXPRTEngine::ComputeSSAdaptive, méthode

Calcule un vecteur de transfert qui mappe le rayonnement source à l’éclat de sortie résultant de la diffusion subsurface, à l’aide de l’échantillonnage adaptatif et des propriétés matérielles définies par ID3DXPRTEngine::SetMeshMaterials. La méthode génère de nouveaux sommets et visages sur le maillage pour se rapprocher plus précisément du signal de transfert de rayonnement précalculé (PRT). Cette méthode ne peut être utilisée que pour les matériaux définis par sommet dans un objet maillage.

Syntaxe

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

Paramètres

pDataIn [in]

Type : LPD3DXPRTBUFFER

Pointeur vers un objet ID3DXPRTBuffer d’entrée qui représente l’objet 3D du rebond lumineux précédent. Ce tampon d’entrée doit avoir le nombre approprié de canaux de couleur alloués pour la simulation.

AdaptiveThresh [in]

Type : FLOAT

Seuil sur le vecteur PRT à utiliser pour subdivisant les sommets et les visages de maillage. Si elle est inférieure à 1e-6f, une valeur par défaut de 1e-6f est spécifiée.

MinEdgeLength [in]

Type : FLOAT

Longueur minimale du bord de la face qui sera générée dans l’échantillonnage adaptatif. Si la méthode détermine que la valeur est trop petite, une valeur dépendante du modèle est spécifiée.

MaxSubdiv [in]

Type : UINT

Niveau maximal de subdivision d’un visage qui sera utilisé dans l’échantillonnage adaptatif. Si zéro, une valeur par défaut de 4 est spécifiée.

pDataOut [in, out]

Type : LPD3DXPRTBUFFER

Pointeur vers un objet ID3DXPRTBuffer de sortie qui modélise un seul rebond de la lumière diffusée en sous-surface. Ce tampon de sortie doit avoir le nombre approprié de canaux de couleur alloués pour la simulation.

pDataTotal [in, out]

Type : LPD3DXPRTBUFFER

Pointeur vers un objet ID3DXPRTBuffer facultatif qui est la somme en cours d’exécution de toutes les sorties pDataOut précédentes. Peut être NULL.

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

Pour modéliser la diffusion subsurface, appelez cette méthode pour chaque rebond de lumière après l’appel d’une méthode ID3DXPRTEngine::ComputeDirectLightingSHAdaptive .

La sortie de cette méthode n’inclut pas l’albédo, 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 ID3DXPRTEngine::MultiplyAlbedo pour multiplier chaque vecteur PRT par l’albedo.

Spécifications

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

Voir aussi

ID3DXPRTEngine

ID3DXPRTEngine::ComputeBounce

ID3DXPRTEngine::Computess