Saya sedang mengerjakan proyek kecil HLSL / C ++ untuk membahas pekerjaan grafis saya, dan saya tidak yakin bagaimana saya bisa mendapatkan vektor yang menghadap dari vertex poligon. Sepertinya saya tidak dapat menemukan formula.
Posisi adalah P1, P2, P3
Sebut saja mereka kelas VertexPoint dengan P1.x, P1.y, P1.z misalnya?
Jawaban:
Anda dapat dengan mudah menemukan normal dengan menghitung dua vektor, V1 = P2-P1, dan V2 = P3-P1, dan kemudian menemukan produk silang N = V1 x V2. Kemudian Anda menormalkan N. Tergantung pada urutan simpul (searah atau berlawanan arah jarum jam), Anda akan mendapatkan bagian depan atau belakang yang normal.
Anda juga perlu memastikan bahwa tiga tiga poin tidak selaras, jika mereka Anda harus memilih titik lain.
sumber