Interface ID3DXPRTEngine
L’interface ID3DXPRTEngine est utilisée pour calculer une simulation de transfert de luminance précalculée (PRT). Ses méthodes sont généralement utilisées en mode hors connexion pour calculer les vecteurs de transfert par sommet ou par Texel à l’avance de la modélisation 3D en temps réel.
Membres
L’interface ID3DXPRTEngine hérite de l’interface IUnknown . ID3DXPRTEngine a également les types de membres suivants :
Méthodes
L’interface ID3DXPRTEngine possède ces méthodes.
| Méthode | Description |
|---|---|
| ClosestRayIntersects | Utilise l’efficacité du traçage de rayon dans les simulations de transfert luminance (PRT) précalculées pour déterminer si un rayon croise une maille. Si une intersection est trouvée, la méthode retourne l’index du trait de filet le plus proche atteint par le rayon et les coordonnées Barycentric du point d’intersection. |
| ComputeBounce | Calcule le luminance source résultant d’un rebond unique de la lumière interreflete. Cette méthode peut être utilisée pour n’importe quelle scène éclairée, y compris un modèle de transfert luminance (PRT) à base d’harmonique sphérique (SH). |
| ComputeBounceAdaptive | Calcule le luminance source résultant d’un rebond unique de la lumière interreflet, à l’aide de l’échantillonnage adaptatif. Cette méthode génère de nouveaux vertex et des visages sur la maille pour rapprocher plus précisément le signal de transfert luminance (PRT) précalculé. Cette méthode peut être utilisée pour toute scène éclairée, y compris un modèle PRT basé sur l’harmonique sphérique (SH). |
| ComputeDirectLightingSH | Calcule la contribution de l’éclairage direct aux objets 3D où le luminance source est représenté par une approximation de l’harmonique sphérique (SH). |
| ComputeDirectLightingSHAdaptive | Calcule la contribution de l’éclairage direct aux objets 3D où le luminance source est représenté par une approximation d’harmonique sphérique (SH), à l’aide de l’échantillonnage adaptatif. Cette méthode génère de nouveaux vertex et des visages sur la maille pour rapprocher plus précisément le signal de transfert luminance (PRT) précalculé. |
| ComputeDirectLightingSHGPU | Utilise le GPU pour calculer la contribution de l’éclairage direct aux objets 3D où le luminance source est représenté par une approximation de l’harmonique sphérique (SH). Le calcul de l’éclairage sur le GPU sera généralement beaucoup plus rapide que sur le processeur. |
| ComputeLDPRTCoeffs | Calcule les coefficients de transfert de luminance précalculés (LDPRT) déformables localement par rapport aux vecteurs normaux par échantillon pour réduire l’erreur des moindres carrés en ce qui concerne les données d’entrée ID3DXPRTBuffer . Ces coefficients peuvent être utilisés avec des vecteurs normaux dépouillés ou transformés pour modéliser les effets globaux sur les objets dynamiques. |
| Les honorer | Calcule le luminance source résultant de la diffusion sous-surface, à l’aide des propriétés de matériau définies par ID3DXPRTEngine :: SetMeshMaterials. Cette méthode peut être utilisée uniquement pour les matériaux définis par vertex dans un objet de maillage. |
| ComputeSSAdaptive | Calcule un vecteur de transfert qui mappe les luminance sources pour quitter les luminance résultant de la diffusion sous-surface, à l’aide de l’échantillonnage adaptatif et des propriétés de matériau définies par ID3DXPRTEngine :: SetMeshMaterials. La méthode génère de nouveaux vertex et des visages sur la maille pour rapprocher plus précisément le signal de transfert luminance (PRT) précalculé. Cette méthode peut être utilisée uniquement pour les matériaux définis par vertex dans un objet de maillage. |
| ComputeSurfSamplesBounce | Calcule les exemples de transfert luminance (PRT) précalculés pour un point arbitraire (et vecteur normal). |
| ComputeSurfSamplesDirectSH | Calcule, à un point arbitraire qui ne se trouve pas sur un maillage, un vecteur de transfert qui mappe les luminance sources (représentés par une approximation d’harmoniques sphériques) pour quitter luminance. |
| ComputeVolumeSamples | Calcule une projection de l’éclairage direct de la lumière précédente dans les vecteurs de base d’harmoniques sphériques (SH) qui représentent des luminance d’incident aux emplacements spécifiés. |
| ComputeVolumeSamplesDirectSH | Calcule une projection d’éclairage distant dans des vecteurs d’harmoniques sphériques (SH) qui représentent des luminance d’incident aux emplacements spécifiés. |
| ExtractPerVertexAlbedo | Copie les valeurs Albedo par vertex d’une maille. |
| FreeBounceData | Libère la mémoire utilisée pour les données de simulation de lumière rebondée temporaire. |
| FreeSSData | Libère la mémoire utilisée pour les données de simulation de diffusion de lumière de la sous-surface temporaire. |
| GetAdaptedMesh | Retourne un maillage avec les modifications résultant de l’échantillonnage spatial adaptatif. Le maillage retourné contient uniquement des positions, des normales et des coordonnées de texture (s’il est défini). |
| GetNumFaces | Récupère le nombre de faces de la maille, y compris les nouvelles faces ajoutées à la suite d’un échantillonnage spatial adaptatif. |
| GetNumVerts | Récupère le nombre de vertex de la maille, y compris les nouveaux vertex ajoutés à la suite d’un échantillonnage spatial adaptatif. |
| GetVertexAlbedo | Récupère les valeurs Albedo des vertex de maillage. |
| MultiplyAlbedo | Multiplie chaque vecteur de transfert luminance (PRT) précalculé par le Albedo par vertex. |
| ResampleBuffer | Rééchantillonne une mémoire tampon d’entrée ID3DXPRTBuffer et l’enregistre dans une mémoire tampon de sortie. Cette méthode peut être utilisée pour convertir une mémoire tampon de vertex en une mémoire tampon de texture et vice versa. Il peut également être utilisé pour convertir des mémoires tampons à canal unique en mémoires tampons de 3 canaux et vice versa. |
| RobustMeshRefine | Sous-divise les visages sur une maille, ce qui permet un échantillonnage adaptatif prudent qui n’élimine pas les caractéristiques de la maille. |
| ScaleMeshChunk | Met à l’échelle tous les échantillons associés à un sous-maillage donné. La méthode est utile pour le calcul de la diffusion sous-surface. |
| SetCallBack | Définit un pointeur vers une fonction de rappel facultative qui calcule le pourcentage de calculs de l’harmonique sphérique (SH) terminé et donne à l’appelant la possibilité d’abandonner le simulateur. |
| SetMeshMaterials | Définit les propriétés de matériau de maillage dans la scène 3D. Utilisez cette méthode pour spécifier les paramètres de diffusion de sous-surface. |
| SetMinMaxIntersection | Définit les distances minimale et maximale de l’intersection entre les objets 3D. Ces valeurs de distance peuvent être utilisées pour contrôler la distance minimale ou maximale que les objets peuvent ombrer ou pour refléter la lumière. Par exemple, la méthode peut être utilisée pour limiter l’occultation des fonctionnalités avoisinantes d’un modèle 3D. |
| SetPerTexelAlbedo | Définit une valeur Albedo pour chaque Texel, en remplaçant les valeurs Albedo précédentes. |
| SetPerTexelNormal | Définit un vecteur normal pour chaque Texel dans un objet texture. Cette méthode est utilisée pour stocker des vecteurs normaux de vertex à partir d’une maille (ou des normales de vertex interpolées si le transfert de luminance précalculé basé sur les pixels (PRT) est calculé). |
| SetPerVertexAlbedo | Définit une valeur Albedo pour chaque vertex de maillage, en remplaçant les valeurs Albedo précédentes. |
| SetSamplingInfo | Définit les propriétés d’échantillonnage utilisées par le simulateur de transfert luminance (PRT) précalculé. |
| ShadowRayIntersects | Utilise l’efficacité du traçage de rayon dans les simulations de transfert luminance (PRT) précalculées pour déterminer si un rayon croise une maille. Généralement utilisé pour déterminer si un point donné se trouve dans une ombre. |
Notes
Pour convertir des valeurs RVB en valeurs de luminance, utilisez la formule suivante :
Luminance = R * 0.2125 + G * 0.7154 + B * 0.0721
L’interface ID3DXPRTEngine est obtenue en appelant la fonction D3DXCreatePRTEngine .
Le type LPD3DXPRTENGINE est défini comme un pointeur vers l’interface ID3DXPRTEngine .
typedef interface ID3DXPRTEngine ID3DXPRTEngine;
typedef interface ID3DXPRTEngine *LPD3DXPRTENGINE;
Spécifications
| Condition requise | Valeur |
|---|---|
| En-tête |
|
| Bibliothèque |
|