Bunun için Genel Grafik Araç Seti'ne yerleşmiş birkaç proje var . Orada GMTL güzel - oldukça küçük, çok fonksiyonel ve çok güvenilir olacak kadar yaygın olarak kullanılmıştır. OpenSG, VRJuggler ve diğer projelerin hepsi, kendi elle yuvarlanan vertor / matris matematiği yerine bunu kullanmaya başladı.
Oldukça hoş buldum - her şeyi şablonlarla yapıyor, bu yüzden çok esnek ve çok hızlı.
Düzenle:
Yorumlar tartışmasından ve düzenlemelerden sonra, belirli uygulamaların yararları ve dezavantajları ve durumunuz göz önüne alındığında neden birini diğeri seçebileceğiniz hakkında daha fazla bilgi vereceğimi düşündüm.
GMTL -
Faydaları: Özellikle grafik motorları için tasarlanmış basit API. Başka herhangi bir pakette bulunmayan oluşturmaya yönelik birçok ilkel türü (uçaklar, AABB, çoklu enterpolasyonlu quatenrions, vb.) İçerir. Çok düşük bellek yükü, oldukça hızlı, kullanımı kolay.
Dezavantajları: API özellikle oluşturma ve grafiklere çok odaklanmıştır. Genel amaçlı (NxM) matrisler, matris ayrıştırma ve çözme vb. İçermez, çünkü bunlar geleneksel grafik / geometri uygulamaları alanı dışındadır.
Öz -
Faydaları: Temiz API , kullanımı oldukça kolaydır. Kuaterniyonlar ve geometrik dönüşümler içeren bir Geometri modülü içerir . Düşük bellek yükü. Büyük NxN matrislerinin ve diğer genel amaçlı matematiksel rutinlerin tam, yüksek performanslı çözümü.
Dezavantajları: İstediğinizden biraz daha geniş bir kapsam olabilir (?). GMTL ile karşılaştırıldığında daha az geometrik / spesifik rutin oluşturma (örn: Euler açısı tanımları, vb.).
IMSL -
Yararları: Çok eksiksiz bir sayısal kütüphane. Çok, çok hızlı (sözde en hızlı çözücü). Şimdiye kadar en büyük, en eksiksiz matematiksel API. Ticari olarak desteklenen, olgun ve kararlı.
Dezavantajları: Maliyet - ucuz değil. Çok az geometrik / belirli yöntem oluşturma, bu yüzden kendi lineer cebir sınıflarının üstüne kendi rulo gerekir.
NT2 -
Yararları: MATLAB'a alışkınsanız daha tanıdık olan bir sözdizimi sağlar. Büyük matrisler vb. İçin tam ayrışma ve çözme sağlar.
Dezavantajları: Matematiksel, işleme odaklı değil. Muhtemelen Eigen kadar performans göstermez.
LAPACK -
Faydaları: Çok kararlı, kanıtlanmış algoritmalar. Uzun zamandır etrafta. Tam matris çözme, vb. Gizli matematik için birçok seçenek.
Dezavantajları: Bazı durumlarda yüksek performans göstermez. Fortran'dan, kullanım için tek API ile taşındı.
Şahsen benim için, tek bir soruya geliyor - bunu nasıl kullanmayı planlıyorsunuz? Eğer sadece render ve grafiklere odaklanıyorsanız, iyi performans gösterdiğinden ve kendi uygulamanızı uygulamak zorunda kalmadan kutudan birçok yararlı oluşturma işlemini desteklediğinden, Generic Graphics Toolkit'i seviyorum . Genel amaçlı matris çözme işlemine ihtiyacınız varsa (yani: büyük matrislerin SVD veya LU ayrışması), Eigen ile birlikte giderim , çünkü bazı geometrik işlemler sağlar ve büyük matris çözümleri ile çok performans gösterir. Kendi grafiklerinizi / geometrik işlemlerinizi (matrislerinin / vektörlerinin üstüne) daha fazla yazmanız gerekebilir, ancak bu korkunç değildir.