[C/C++][Libs & moteurs] Quelle librairie de matrices en C++ ?

Le côté programmation du développement d'un jeu vidéo.

Quelle librairie de matrices en C++ ?

Messagepar Codnob » 22 Déc 2009, 16:10

Hello,
Je suis à la recherche d'une librairie assez basique de représentation et de calculs simples sur des matrices pour de l'usage 3D, histoire de pas réinventer la roue en en faisant une moi même, qui serait moins complète.

Voici celles que j'ai listé :

GLM (OpenGL Mathematics) : http://glm.g-truc.net/about.html
MTL (Matrix template lirary) : http://www.osl.iu.edu/research/mtl/
(j'ai aussi vu Armadillo mais je crois que la licence est assez restrictive http://arma.sourceforge.net/ )

Je recherche une lib simple, compilable en multi plateformes mais qui reste performante et peu couteuse en mémoire. Il faudrait aussi que la licence permette une utilisation commerciale du soft sans redistribution des sources.

Avez vous des feedback ou une experience à partager sur ces libs ? (ou d'autres à me suggérer).

Merci d'avance.
Codnob
Hello World, I'm new !
 
Messages: 2
Inscription: 22 Déc 2009, 16:07

Messagepar Gavos » 22 Déc 2009, 20:08

Hej Codnob,

Je n'ai jamais utilisé ce genre de lib mais par curiosité je suis allé voir la licence d'Armadillo et c'est du LGPL, donc a priori tu peux l'utiliser dans un projet commercial à partir du moment où elle est lié dynamiquement (dll/so). Je crois qu'il faut également que tu précises que ton soft l'utilise et que tu fournisses la licence (ou un lien vers la licence).

Désolé de ne pas pouvoir plus t'aider...
Gavos
 
Messages: 1089
Inscription: 19 Mar 2005, 13:00

Messagepar Thelvyn » 23 Déc 2009, 00:51

Hello

J'ai utilisé la CML ( http://cmldev.net/ ), je la trouve sympa, elle est sous la Boost Software License.

Par contre pas d'optimisations genre SSE ou autres...

T'as les vecteurs, les matrices, les quaternions, les fonctions d'interpolation, etc.

Normalement il y a tout ce qu'il faut pour les jeux, et la programmation graphique.

:)
CoDito, ergo sum...
Avatar de l’utilisateur
Thelvyn
 
Messages: 488
Inscription: 31 Mai 2005, 20:40

Messagepar Codnob » 23 Déc 2009, 13:19

Gavos : merci pour l'info, mais sans m'étendre une .DLL (ou équivalent suivant l'OS) n'est pas pour moi une bonne solution.

Thelvyn : Oui je suis tombé sur la CML aussi aux aléas de mes recherches hier. La syntaxe me plait pas mal, et en bonus avoir une gestion de frustrum et du picking en ray cast aussi (ça m'evitera de le coder moi même). Avantage : on peut avoir des matrices column major ou row major, et parmis les libs que j'ai farfouillées rares étaient celles qui offraient les deux. Si l'appli peut économiser du transpose à tout va selon l'API graphique, c'est toujours ça de pris.
ça eut être une bonne solution et à voir le jour ou j'aurai besoin de grosses perfs pour la remplacer par une lib optimisée SIMD pour la ou les plateformes.

pour infos en bonnes libs j'ai trouvé :
- la vectormathlibrary de Sony, inclus dans le SDK de bullet : une version SSE, une version PPU utilisant les instructions Altivec et une version SPU, ainsi quune version "soft" multi plateforme utilisant des instructions scalaires.
faut voir pour l'usage.


Celles que j'ai écartées :
- tinymath : ultra légère mais du coup peu de fonctionalités et surtout row major only
- MathLib3D : que du vecteur, pas de matrice.
- Boost : j'ai juste jeté un oeil à leur lib de matrice. comme la MTL, c'est probablement puissant, mais comme d'hab ça a l'air assez lourd pour l'utilisation que je vais en avoir.

Voilà du coup je suis pas mieux avancé sur mon choix final, peut être la CML dans un premier temps pour prototyper rapidement (même si la GLM me déplait pas non plus)
Codnob
Hello World, I'm new !
 
Messages: 2
Inscription: 22 Déc 2009, 16:07

Messagepar Gabriel » 25 Déc 2009, 22:47

A noter un truc sympa avec CML aussi (que tu as du surement remarquer), c'est que pour la partie 3D, CML gère aussi bien D3D que OGL.

Personnellement, j'avais bien aimé quand j'avais testé, c'était assez bien fouttu.
Avatar de l’utilisateur
Gabriel
 
Messages: 311
Inscription: 25 Fév 2006, 10:15


Retourner vers Programmation

Qui est en ligne

Utilisateurs parcourant ce forum: Google [Bot] et 8 invités

cron