Bagaimana cara menghasilkan normal permukaan?

9

Saya memiliki beberapa metode menggambar debug di mesin saya yang dapat menghasilkan geometri yang berguna untuk debugging, seperti bola dan kubus.

Saat ini saya tidak menghasilkan normals untuk bentuk ini. Apakah ada metode tujuan umum untuk menghasilkan face normals dan per vertex normals untuk mesh yang arbitrer? (Saya membayangkan Anda akan membutuhkan face normals untuk menghasilkan per vertex normals?)

Cubed2D
sumber

Jawaban:

12

Untuk menghasilkan normals wajah, gunakan produk lintas vektor dari dua sisi setiap segitiga dan kemudian normalisasikan hasilnya. Pastikan Anda mendapatkan arah yang benar, jika tidak, beberapa normals akan menunjukkan dan beberapa keluar.

Vertex normals kemudian akan menjadi interpolasi dari semua normals wajah tempat vertex dilampirkan.

Mendesis
sumber
Maksud Anda interpolasi yang dinormalisasi (atau hanya penjumlahan yang dinormalisasi), mungkin;)
Andrew Russell
3
Selalu aktifkan kembali setelah dijumlahkan! Bahkan jika Anda diinterpolasi dari vektor dinormalisasi, hasilnya TIDAK dinormalisasi!
Bob Somers