Ada beberapa proyek yang telah diselesaikan pada Generic Graphics Toolkit untuk ini. GMTL di sana bagus - cukup kecil, sangat fungsional, dan telah digunakan cukup luas untuk menjadi sangat andal. OpenSG, VRJuggler, dan proyek lain semuanya telah beralih untuk menggunakan ini alih-alih matematika matriks / matriks lintingan tangan mereka sendiri.
Saya merasa cukup bagus - ia melakukan semuanya melalui templat, jadi sangat fleksibel, dan sangat cepat.
Edit:
Setelah diskusi komentar, dan pengeditan, saya pikir saya akan membuang lebih banyak informasi tentang manfaat dan kerugian untuk implementasi tertentu, dan mengapa Anda dapat memilih satu dari yang lain, mengingat situasi Anda.
GMTL -
Manfaat: API Sederhana, dirancang khusus untuk mesin grafis. Termasuk banyak tipe primitif yang ditujukan untuk rendering (seperti pesawat, AABB, quatenrions dengan banyak interpolasi, dll) yang tidak ada dalam paket lain. Memori overhead sangat rendah, cukup cepat, mudah digunakan.
Kelemahan: API sangat fokus khusus pada rendering dan grafik. Tidak termasuk matriks tujuan umum (NxM), dekomposisi dan penyelesaian matriks, dll, karena ini berada di luar ranah aplikasi grafik / geometri tradisional.
Eigen -
Manfaat: Bersihkan API , cukup mudah digunakan. Termasuk modul Geometri dengan angka empat dan transformasi geometris. Overhead memori rendah. Pemecahan penuh, sangat berkinerja tinggi dari matriks NxN besar dan rutinitas matematika tujuan umum lainnya.
Kerugian: Mungkin ruang lingkup sedikit lebih besar daripada yang Anda inginkan (?). Lebih sedikit geometris / render rutinitas khusus bila dibandingkan dengan GMTL (yaitu: definisi sudut Euler, dll).
IMSL -
Manfaat: Perpustakaan numerik yang sangat lengkap. Sangat, sangat cepat (konon pemecah tercepat). Sejauh ini, API matematika terbesar dan terlengkap. Didukung secara komersial, dewasa, dan stabil.
Kelemahan: Biaya - tidak murah. Sangat sedikit metode khusus geometris / render, jadi Anda harus menggulirkan Anda sendiri di atas kelas aljabar linier mereka.
NT2 -
Manfaat: Menyediakan sintaks yang lebih akrab jika Anda terbiasa dengan MATLAB. Memberikan dekomposisi dan penyelesaian penuh untuk matriks besar, dll.
Kelemahan: Matematika, tidak fokus rendering. Mungkin tidak sebagus Eigen.
LAPACK -
Manfaat: Sangat stabil, algoritma terbukti. Sudah ada sejak lama. Pemecahan matriks lengkap, dll. Banyak pilihan untuk matematika tidak jelas.
Kelemahan: Tidak terlalu berkinerja tinggi dalam beberapa kasus. Porting dari Fortran, dengan API ganjil untuk penggunaan.
Secara pribadi, bagi saya, hanya ada satu pertanyaan - bagaimana Anda berencana untuk menggunakan ini. Jika Anda fokus hanya pada rendering dan grafik, saya suka Generic Graphics Toolkit , karena kinerjanya baik, dan mendukung banyak operasi rendering yang berguna di luar kotak tanpa harus menerapkan sendiri. Jika Anda memerlukan penyelesaian matriks tujuan umum (yaitu: dekomposisi SVD atau LU dari matriks besar), saya akan menggunakan Eigen , karena ia menangani itu, menyediakan beberapa operasi geometris, dan sangat performan dengan solusi matriks besar. Anda mungkin perlu menulis lebih banyak dari grafik / operasi geometrik Anda sendiri (di atas matriks / vektor), tetapi itu tidak mengerikan.