Pracuję nad małym projektem HLSL / C ++ do omówienia mojej pracy graficznej i nie jestem pewien, jak mam uzyskać wektor skierowany z wielokąta wierzchołka. Nie mogę znaleźć wzoru.
Pozycje to P1, P2, P3
Nazwijmy je klasą VertexPoint na przykład z P1.x, P1.y, P1.z?
Odpowiedzi:
Możesz łatwo znaleźć normalną, obliczając dwa wektory, V1 = P2-P1 i V2 = P3-P1, a następnie znajdź iloczyn krzyżowy N = V1 x V2. Następnie normalizujesz N. W zależności od kolejności wierzchołków (zgodnie z ruchem wskazówek zegara lub przeciwnie do ruchu wskazówek zegara) otrzymasz normalną stronę do przodu lub do tyłu.
Musisz także upewnić się, że trzy trzy punkty nie są wyrównane, jeśli tak, musisz wybrać inny punkt.
źródło