Ci sono alcuni progetti che hanno optato per il Generic Graphics Toolkit per questo. Il GMTL è bello - è abbastanza piccolo, molto funzionale ed è stato usato abbastanza ampiamente per essere molto affidabile. OpenSG, VRJuggler e altri progetti sono passati a utilizzare questo invece del proprio matematico a matrice / verificatore a rotazione manuale.
L'ho trovato abbastanza bello: fa tutto tramite i modelli, quindi è molto flessibile e molto veloce.
Modificare:
Dopo la discussione dei commenti e le modifiche, ho pensato di aggiungere alcune informazioni in più sui vantaggi e gli svantaggi di implementazioni specifiche e sul motivo per cui potresti scegliere l'una rispetto all'altra, data la tua situazione.
GMTL -
Vantaggi: API semplice, progettata appositamente per i motori grafici. Include molti tipi primitivi orientati al rendering (come piani, AABB, quatenrioni con interpolazione multipla, ecc.) Che non sono presenti in nessun altro pacchetto. Overhead di memoria molto basso, abbastanza veloce, facile da usare.
Lati negativi: l'API si concentra in particolare sul rendering e sulla grafica. Non include matrici per scopi generici (NxM), decomposizione e risoluzione di matrici, ecc., Poiché sono al di fuori del regno delle tradizionali applicazioni grafiche / geometriche.
Eigen -
Vantaggi: API pulite , abbastanza facili da usare. Include un modulo Geometry con quaternioni e trasformazioni geometriche. Overhead di memoria insufficiente. Soluzione completa e altamente performante di matrici NxN di grandi dimensioni e altre routine matematiche di uso generale.
Lati negativi: potrebbe essere un ambito un po 'più ampio di quello che desideri (?). Meno routine geometriche / di rendering specifiche rispetto a GMTL (ovvero: definizioni dell'angolo di Eulero, ecc.).
IMSL -
Vantaggi: libreria numerica molto completa. Molto, molto veloce (presumibilmente il risolutore più veloce). L'API matematica di gran lunga più ampia e completa. Supportato commercialmente, maturo e stabile.
Lati negativi: costo - non economico. Pochissimi metodi specifici di geometria / rendering, quindi dovrai implementare il tuo sopra le loro classi di algebra lineare.
NT2 -
Vantaggi: fornisce una sintassi più familiare se si è abituati a MATLAB. Fornisce decomposizione e risoluzione complete per matrici di grandi dimensioni, ecc.
Lati negativi: matematica, non focalizzata sul rendering. Probabilmente non è così performante come Eigen.
LAPACK -
Vantaggi: algoritmi molto stabili e comprovati. Sono in giro da molto tempo. Risoluzione matrice completa, ecc. Molte opzioni per la matematica oscura.
Lati negativi: in alcuni casi non altrettanto performanti. Portato da Fortran, con API dispari per l'uso.
Personalmente, per me, si tratta di una singola domanda: come pensi di usarlo. Se ti concentri solo sul rendering e sulla grafica, mi piace Generic Graphics Toolkit , poiché funziona bene e supporta molte utili operazioni di rendering pronte all'uso senza dover implementare le tue. Se hai bisogno di una risoluzione matrice generale (es: decomposizione SVD o LU di matrici di grandi dimensioni), andrei con Eigen , dal momento che gestisce ciò, fornisce alcune operazioni geometriche ed è molto performante con soluzioni a matrice di grandi dimensioni. Potrebbe essere necessario scrivere più operazioni grafiche / geometriche (in cima alle loro matrici / vettori), ma non è orribile.