La migliore libreria matematica C ++ per Game Engine? [chiuso]


18

Sto cercando una libreria matematica C ++ opensource veloce per il mio motore di gioco con le seguenti funzionalità:

  • veloce (sse?)
  • vettori
  • matrici
  • quaternioni

adatto sia per opengl che per directx


1
Non vedo perché una libreria matematica dipenda comunque da un'API grafica. : P
Il comunista Duck il

3
afaik opengl utilizza le matrici principali di colonna e la riga di directx maggiore. quindi sarebbe bello se la libreria supportasse entrambi
pragmascript

1
In GL, puoi sempre impostare la matrice trasposta, e in DX puoi specificare il layout negli shader. Anche la regolazione manuale non è un grosso problema.
Anteru,

1
La piattaforma è importante qui, perché è abbastanza facile creare una libreria matematica che funzioni alla grande su un PC ma terribile su una console o viceversa.
Kylotan,

Risposte:


11

XNA Math potrebbe essere per te. È un'intestazione solo libreria matematica C ++ che viene distribuita con l'ultimo DirectK ​​SDK e utilizza intrinseci SSE. Non posso parlare molto delle sue prestazioni, ma da quello che ho letto, sembra essere abbastanza decente.

Riferimento matematico XNA

Guida alla programmazione di XNA Math

Download dell'SDK DX

EDIT: Inoltre, non sono sicuro dei termini della licenza. DX SDK Eula afferma che il "Codice distribuibile" potrebbe non esserlo

"eseguire su una piattaforma diversa dalle piattaforme Windows, Xbox e Windows Mobile;"

Non sono del tutto sicuro se questo si applica a xna math poiché solo il codice di esempio e di utilità è esplicitamente contrassegnato come "Codice distribuibile"


Non ho idea dei termini di licenza di XNA, ad esempio, è ok usarli in sistemi operativi non Microsoft, per esempio. Detto questo, ho usato la libreria matematica d3dx (che è praticamente la stessa cosa) in un progetto di rendering software ad un certo punto, quindi non dipende in alcun modo da directx.
Jari Komppa,

1
Chiarimento: la matematica d3dx è probabilmente più o meno la stessa cosa in termini di licenza - per quanto riguarda l'implementazione è diversa. Secondo la documentazione dell'SDK, la matematica d3dx si basa fortemente sull'inline e passa per puntatore, mentre xnamath si basa su SIMD e intrinseci.
Koarl

14

Usiamo la matematica OpenGL

Anche se il nome implica che è solo per OpenGL, non vedo alcun motivo per cui non funzionerebbe per DirectX. È una libreria solo intestazione, facile da usare ed è molto attivamente aggiornato.

Controlla.


2
usa la licenza MIT
Jari Komppa del

5

Prova Eigen : veloce, modelli di espressione, vettorializzati, facili da usare e con licenza MPL2



1

La libreria vectormath di Sony, utilizzata come parte di Bullet Physics , soddisfa tutti i requisiti. È necessario un po 'di lavoro per separarlo da Bullet, ma nulla di grave: non dipende dal proiettile, solo che nessuno l'ha mai impacchettato ufficialmente a parte.

La versione attualmente nella struttura ad albero dei proiettili supporta le ottimizzazioni SSE e ha un'interfaccia C ++.

Una versione precedente (probabilmente ora non supportata) supporta anche i formati SOA e un'interfaccia C pura.


1
Sembra una licenza zlib / libpng.
Jari Komppa,

Sono interessato a questo. Hai detto che alcuni lavori sono coinvolti nella separazione, hai collegamenti o altre informazioni su quale tipo di lavoro comporta?

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.