Comment associer une texture carrée à un triangle?

13

Je veux trouver les coordonnées de texture pour le point P. J'ai les sommets du triangle et leurs coordonnées uv correspondantes.

Les nombres dans les petits carrés de la texture représentent des valeurs de couleur.

Quelles sont les étapes du calcul des coordonnées uv de P?

entrez la description de l'image ici

John John
la source
Il y a une transformation affine qui mappera chaque coin à sa coordonnée de texture, vous pouvez l'utiliser pour mapper P à son uv.
monstre à cliquet
@ratchetfreak pourriez-vous me fournir un lien plz?
john john
Il y a une bonne écriture sur la façon de faire le calcul du point d'intersection ainsi que le calcul du cordon barycentrique en une seule fois dans cet article . Cela revient essentiellement à transformer le triangle.
joojaa

Réponses:

14

Ceci est réalisé via l' interpolation barycentrique .

P

ABPPBCPCA

entrez la description de l'image ici

APPBCABC

PAPBC

1

La méthode de calcul des coordonnées barycentriques est la suivante:

BaryA=(ByCy)(PxCx)+(CxBx)(PyCy)(ByCy)(AxCx)+(CxBx)(AyCy)BaryB=(CyAy)(PxCx)+(AxCx)(PyCy)(ByCy)(AxCx)+(CxBx)(AyCy)BaryC=1BaryABaryB

La dérivation et le raisonnement sont expliqués dans l' article de wikipedia .

P

Puv=BaryAAuv+BaryBBuv+BaryCCuv

Le raisonnement est également très bien expliqué dans cette présentation.

Voir également cette question pour des méthodes de calcul efficaces.

Rotem
la source
BaryB(AyCy)
@joojaa Je ne pense pas. C'est la même chose dans l'article Wikipedia, et cela semble correct d'après un calcul de test que j'ai fait.
Rotem
(AyCy)ACy=(AyCy)
1
P