Je travaille sur un petit projet HLSL / C ++ pour passer en revue mon travail graphique, et je ne sais pas comment obtenir un vecteur de face à partir d'un polygone de sommet. Je n'arrive pas à trouver la formule.
Les positions sont P1, P2, P3
Appelons-les classe VertexPoint avec P1.x, P1.y, P1.z par exemple?
Réponses:
Vous pouvez facilement trouver la normale en calculant deux vecteurs, V1 = P2-P1 et V2 = P3-P1, puis trouver le produit croisé N = V1 x V2. Ensuite, vous normalisez N. En fonction de l'ordre des sommets (dans le sens horaire ou antihoraire), vous obtiendrez une orientation normale vers l'avant ou vers l'arrière.
Vous devez également vous assurer que trois trois points ne sont pas alignés, s'ils le sont, vous devez choisir un autre point.
la source