Équations PRT (Direct3D 9)
Pour bien comprendre un nuanceur qui implémente PRT, il est utile de dériver la formule utilisée par le nuanceur pour calculer le rayon de sortie.
Pour commencer, l’équation suivante est l’équation générale pour calculer le rayonnement de sortie résultant de l’éclairage direct sur un objet diffus avec un éclairage distant arbitraire.
où:
Paramètre | Description |
---|---|
Rp | Rayon de sortie au sommet p. Évalué à chaque sommet sur le maillage. |
pd | Albedo de la surface. |
pi | Constante, utilisée comme facteur de normalisation de la conservation de l’énergie. |
L(s) | Environnement d’éclairage (radiance source). |
Vp₍s₎ | Fonction de visibilité binaire pour point p. C’est 1 si le point peut voir la lumière, 0 si ce n’est pas le cas. |
Hnp₍s₎ | Le terme cosinus de la loi de Lambert. Égal à max(np· s), 0) où Np est la normale de surface à un point p. |
s | Variable qui s’intègre sur la sphère. |
À l’aide de fonctions de base sphériques, telles que des harmoniques sphériques, l’équation suivante se rapproche de l’environnement d’éclairage.
équation
où:
Paramètre | Description |
---|---|
L(s) | Environnement d’éclairage (radiance source). |
Je | Entier qui additionne le nombre de fonctions de base. |
O | Ordre des harmoniques sphériques. |
li | Coefficient. |
Yi(s) | Une fonction de base sur la sphère. |
La collection de ces coefficients, L', fournit l’approximation optimale pour la fonction L(s) avec les fonctions de base Y(s). La substitution et la distribution donnent l’équation suivante.
L’intégrale de Yi(s)Vp₍s₎Hnp₍s₎ est un coefficient de transfert tpi que le simulateur précompute pour chaque sommet sur le maillage. La substitution de ce paramètre génère l’équation suivante.
La modification de ce paramètre en notation vectorielle génère l’équation non compressée suivante pour calculer le rayon de sortie pour chaque canal.
où:
Paramètre | Description |
---|---|
Rp | Rayon de sortie au sommet p. |
pd | Albedo de la surface. |
L' | Vecteur de li, et est la projection de la radiance source dans les fonctions de base harmonique sphérique. Il s’agit d’un vecteur order² de coefficients harmoniques sphériques. |
PQ | Vecteur de transfert order² pour le sommet p. Le simulateur divise les coefficients de transfert par p. |
Ces deux vecteurs sont un vecteur order² de coefficients harmoniques sphériques. Notez donc qu’il s’agit simplement d’un produit par points. Selon l’ordre, le point peut être coûteux afin que la compression puisse être utilisée. Un algorithme appelé Analyse du composant principal en cluster (CPPA) compresse efficacement les données. Cela permet l’utilisation d’une approximation harmonique sphérique d’ordre supérieur qui entraîne des ombres plus nettes.
LE CCPA fournit l’équation suivante pour estimer le vecteur de transfert.
équation
où:
Paramètre | Description |
---|---|
PQ | Vecteur de transfert pour le sommet p. |
Mk | Moyenne pour le cluster k. |
j | Entier qui additionne le nombre de vecteurs PCA. |
N | Nombre de vecteurs PCA. |
wpj | Poids du PCA jth pour point p. |
Bkj | Vecteur de base jth PCA pour le cluster k. |
Un cluster est simplement un certain nombre de sommets qui partagent le même vecteur moyen. Comment obtenir la moyenne du cluster, les pondérations PCA, les vecteurs de base PCA et les ID de cluster pour les sommets sont décrits ci-dessous.
La substitution de ces deux équations génère :
Ensuite, la distribution du produit point génère l’équation suivante.
Parce que les deux (Mk· L') et (Bkj· L') est une constante par vertex, l’exemple calcule ces valeurs avec l’UC et les transmet en tant que constantes dans le nuanceur de vertex ; étant donné que wpj modifications pour chaque vertex, l’exemple stocke ces données par vertex dans la mémoire tampon de vertex.
Rubriques connexes