OpenGL Mathematics
Presentation
OpenGL Mathematics (GLM) is a mathematics library for 3D applications based on OpenGL Shading Language(GLSL). The project's goal is to provide to 3D programmer the same tools when he develops under GPU and CPU. This project wasn't limited by GLSL tools, an extension system based on GLSL extensions development conventions allows to extend GLSL capabilities. GLM is release under MIT license and available for all version of GCC from version 3.4 and Visual Studio from version 7.1 (2003).

You can checkout SVN development sources from https://glf.svn.sourceforge.net/svnroot/glf.

Any feedback are welcome, please send then to g.truc.creation[NO_SPAM_THANKS]gmail.com.

04/27/2008 : GLM 0.7.2 released
GLM 0.7.2 is released. The documentation have been completed again and several issues handle with precompiler options.

#define GLM_SWIZZLE GLM_SWIZZLE_FUNC allows to use swizzle operators with internal functions. For example, glm::vec3(1, 2, 3).zyx is replaced by glm::vec3(1, 2, 3)._zyx() with this option.

#define GLM_FORCE_NO_HALF allows to include all extensions (#include "glm/glmext.h") without any support of half-precision floating-point numbers.

#define GLM_AUTO_CAST GLM_DISABLE allows to disable automatic cast (eg: glLoadMatrixf(glm::mat4(1.0))) which could involve unfortunate issues in some cases.

More information on these topic are available in GLM manual section 5 "Known issues".

Download : GLM 0.7.2 (zip, 1.8 MB)
Download : GLM 0.7.2 (7z, 635 KB)
Download : Full changelog

03/24/2008 : GLM 0.7.1 released
GLM 0.7.1 is available under MIT license. It fixes bugs with GCC.

Download : GLM 0.7.1 (zip, 1.8 MB)
Download : GLM 0.7.1 (7z, 635 KB)
Download : Full changelog

03/22/2008 : GLM 0.7.0 released
GLM 0.7.0 is available under MIT license. LGPL lisence have been discard due to an issue of use for console development. This release contains a lot better documentation based on Doxygen. Lot of bugs have been fixed and the documentation completed. Thanks to all people that has contributed thought bug reports and ideas to make this version a lot better!

Download : GLM 0.7.0 (zip, 1.8 MB)
Download : GLM 0.7.0 (7z, 635 KB)
Download : Full changelog

12/10/2007 : GLM 0.6.4 released
GLM 0.6.4 is available and fixes some swizzle operator issues.

Download : GLM 0.6.4 (zip, 1.7 MB)
Download : GLM 0.6.4 (7z, 612 KB)
Download : Full changelog

11/05/2007 : GLM 0.6.3 released
GLM 0.6.3 fixes accesses of matrices and a 3DSMax SDK conflict.

Download : GLM 0.6.3 (zip, 1.8 MB)
Download : GLM 0.6.3 (7z, 633 KB)
Download : Full changelog

10/08/2007 : GLM 0.6.2 released
GLM 0.6.2 fixes an error on an extension.

Download : GLM 0.6.2 (zip, 1.8 MB)
Download : GLM 0.6.2 (7z, 632 KB)
Download : Full changelog

10/07/2007 : GLM 0.6.1 released
GLM 0.6.1 is a minor update that fix an issue on extension namespace and add two more extensions.

Download : GLM 0.6.1 (zip, 1.8 MB)
Download : GLM 0.6.1 (7z, 632 KB)
Download : Full changelog

09/16/2007 : GLM 0.6.0 released
GLM 0.6.0 is available. For this release, work focus on extensions. A new mecanisum allows to integrate GLM extensions as it is actually done for GLSL extension by vendors. Lot of new extensions have been added.

Download : GLM 0.6.0 (zip, 1.8 MB)
Download : GLM 0.6.0 (7z, 666 KB)
Download : Raytracer v1.0 (exe)
Download : Raytracer v1.0 (zip)
Download : Full changelog

02/19/2007 : GLM 0.5.1 released
This release fixes some issues with swizzle operators.

Download : GLM 0.5.1 (zip, 2.3 MB)
Download : GLM 0.5.1 (7z, 789 KB)

01/26/2007 : Cattmull Clark subdivision sample
A new sample is available. It's an update of Philip Rideout's Catmull Clark subdivision program that uses GLM. Released with pleasant permission of Philip Rideout.

Download : CatmullClark sample (zip, 605 KB)

01/06/2007 : GLM 0.5.0 released
This release include GLSL 1.2 new feature in the core implementation. Also, it includes swizzle read and write operators and a custom options system to setup GLM.

It includes some new extensions to extend GLSL features but they remain experimental. The next release should provide the first stable extensions.

The GLM 0.5.0 packages contain some basic samples and some documentation. The ray tracer sample has been updated to GLM 0.5.0. Except for specific cases, especially with extensions, GLM 0.5 is backward compatible.

Now, GLM development is taking advantages of SourceForge.net services: a bug tracker system and the development source code is publicly available on SF.net SVN server.

Download : GLM 0.5.0 (zip, 2.4 MB)
Download : GLM 0.5.0 (7z, 843 KB)
Download : Raytracer b3.0 (exe, 751 KB)
Download : Raytracer b3.0 (zip, 1.1 MB)

05/22/2006 : GLM 0.4.1 released
A GLM update is available. It simply includes some examples for a sweet start with GLM.

The examples show how to use GLM with OpenGL intermediate mode and OpenGL vertex arrays. Also, they show how to use GLM extensions to replace GLU and OpenGL function witch could slightly increase performances by decreasing the number of OpenGL states changes.

Download : GLM 0.4.1 (zip, 1.6 MB)
Download : GLM 0.4.1 (7z, 521 KB)

05/17/2006 : GLM 0.4.0 released
This release introduces first GLSL 1.2 features as planed. Also, various new extensions have been added and updated. Finally, it's not anymore required to include windows.h before glm.h when windows.h is required.

The number of features of GLM, including extensions, start to really increase the compilation time. That's why it's recommended to use precompiled headers.

Download : GLM 0.4.0

04/23/2006 : Roadmap for the years
Version 0.4 will complete matrices and vectors operators and will add GLSL 1.2 features. First, conversions simplifications will be integrated. Then, 4 per 3 matrices and outer product will be available from extensions. The transpose function is already available from extension.

Version 0.5 will integrate GLSL 1.2 features to GLM core.

Version 0.6 will add swizzle operators in reading and writing. (eg: vec3 v1(1.0, 2.0, 3.0); vec3 v2 = v1.xxx; v1.zyx = v;).


04/22/2006 : GLM 0.3.2 released
This release corrects two main bugs. First, a bug of the imat4 and mat4 division operators and other correct the vectors components access from texture coordinate way.

Download : GLM 0.3.2

03/28/2006 : GLM 0.3.1 released
This update adds GCC 4.0 support for MacOS X and Linux and GCC 4.1 under Linux. Also, its provides some optimisations.

Further release will prodive GLSL 1.2 compliances.

Download : GLM 0.3.1

02/19/2006 : GLM 0.3 released
A new release of GLM is now available. It improves GLSL data type conversion and construction compliance. Also, It's adds extensions like some to manage double-precision and half-precision float numbers. Finally a Doxygen documentation has been added.

This new release have been tested under Visual C++ 7.1, Visual C++ 8.0, GCC 3.2.3 et GCC 3.4.2.

Download : GLM 0.3
Download : Raytrace
Documentation : Online documentation

05/06/2005 : GLM 0.2 released
A new release of GLM is now available. A few bugs have been fixed, the portability of GLSL into C++ has been improved, and new experimental extensions have been implemented, enhancing GLSL features.

Project now supports quaternions, adds new features to handle colors, vectors and matrices. For example, GLM allows base colors changing, vector projected operations, and 2D/3D transforms.

To demo the features of this new version, a sample program is included. It is a simple Ray Tracer supporting reflected and refracted rays, three lights types (point, directionnal and spot), two objects types (sphere, plan), using all of the GLM possibilities.


05/04/2005 : English pages
The english section of this site is now available.


02/21/2005 : GLM 0.1 is available
This is the first public availability of GLM. This library supports part of GLSL specifications : All vectors and matrices types, and all the operators and associated functions.

For now, there isn't detailed documentation, but you can freely have a look on GLSL specifications. Consider any incoherence with GLM as an error. Keep in mind the library is included in the namespace "glm".

This project is multi platform and was successfully tested under Visual C++ 7.1, MinGW 3.4 and GCC 3.4.

Download : GLM 0.1 User Release
Download : GLM 0.1 Contributor Release
Documentation : GLSL 1.10.59 specifications

Copyright © 2005-2008 G-Truc Creation