; [http://glsdk.sourceforge.net/ Unofficial OpenGL SDK]: A collection of several cross-platform libraries, using a common build system to simplify OpenGL development. It distributes several easy-to-use libraries for GL initialization. It also has a library for OpenGL loading, image loading, and more.

+

; [http://www.graphics-and-physics-framework.spieleprogrammierung.net/ Graphics And Physics Framework]: German OpenGL based graphics And physics framework.

; [http://www.delta3d.org/ Delta3D] : Game engine based on Open Scene Graph and ODE.

−

; [http://clanlib.org/ ClanLib] : A cross platform C++ toolkit library with a BSD style license. Essentially the library offers a series of different functionality under a streamlined API. Its primary focus is on games, although not limited for that usage only.

−

===Other===

+

Creating an OpenGL context usually requires writing platform-specific code to create a window. It also requires loading OpenGL functions manually from that context. These tools simplify these tasks greatly, in most cases providing cross-platform solutions.

−

−

; [http://glsdk.sourceforge.net/ Unofficial OpenGL SDK]: A collection of several libraries, using a common build system, for OpenGL development. It contains a library for image loading, OpenGL loading, and more.

−

; [http://www.equalizergraphics.com/ Equalizer]: A crossplatform framework for the development and deployment of parallel OpenGL applications for large scale graphics clusters and multi-GPU workstations.

There are many utilities that, while they don't rely on OpenGL very much, are useful in making OpenGL applications.

=== Image and Texture Libraries ===

=== Image and Texture Libraries ===

Line 68:

Line 56:

* [http://glm.g-truc.net GLM]: GLM ( OpenGL Mathematics ) is a cross-platform C++ mathematics library designed to match the GLSL math functions. It also provides vectors and matrices classes and functions to replace the deprecated OpenGL functions and many more features from half-precision floating point or quaternions. It is licensed under the MIT license.

* [http://glm.g-truc.net GLM]: GLM ( OpenGL Mathematics ) is a cross-platform C++ mathematics library designed to match the GLSL math functions. It also provides vectors and matrices classes and functions to replace the deprecated OpenGL functions and many more features from half-precision floating point or quaternions. It is licensed under the MIT license.

* [http://tvmet.sourceforge.net/ TVMet]: The '''T'''iny '''V'''ector '''M'''atrix library using '''E'''xpression '''T'''emplates. This math library is focused on performance via the use of expression template metaprogramming techniques and lazy evaluation. It is licensed under a modified from of the GNU LGPL license. The license modification specifically allows static linking without having the entire program be subject to LGPL.

* [http://tvmet.sourceforge.net/ TVMet]: The '''T'''iny '''V'''ector '''M'''atrix library using '''E'''xpression '''T'''emplates. This math library is focused on performance via the use of expression template metaprogramming techniques and lazy evaluation. It is licensed under a modified from of the GNU LGPL license. The license modification specifically allows static linking without having the entire program be subject to LGPL.

+

+

== Toolkits top on OpenGL ==

+

+

Many programming interfaces are layered on top of OpenGL, providing rich and varied functionality. Not all can interoperate.

+

+

=== Scene graphs ===

+

+

A [http://en.wikipedia.org/wiki/Scene_graph scene graph] is a layer on top of OpenGL that manages objects, their transforms in the world, and various other concepts.

+

+

; [http://www.openscenegraph.org/ Open Scene Graph] : This scene graph works on all Windows platforms, OSX, GNU/Linux, IRIX, Solaris and FreeBSD.

+

; [http://www.opensg.org/ OpenSG] : It's a scene graph which works on IRIX, Windows and Linux.

; [http://www.delta3d.org/ Delta3D]: Game engine based on Open Scene Graph and ODE.

+

; [http://clanlib.org/ ClanLib]: A cross platform C++ toolkit library with a BSD style license. Essentially the library offers a series of different functionality under a streamlined API. Its primary focus is on games, although not limited for that usage only.

+

+

==Other==

+

+

; [http://www.equalizergraphics.com/ Equalizer]: A crossplatform framework for the development and deployment of parallel OpenGL applications for large scale graphics clusters and multi-GPU workstations.

Beginner frameworks

A collection of several cross-platform libraries, using a common build system to simplify OpenGL development. It distributes several easy-to-use libraries for GL initialization. It also has a library for OpenGL loading, image loading, and more.

OpenGL initialization

Creating an OpenGL context usually requires writing platform-specific code to create a window. It also requires loading OpenGL functions manually from that context. These tools simplify these tasks greatly, in most cases providing cross-platform solutions.

Context/Window Toolkits

The creation of a window to render stuff in is not covered in the OpenGL specification. This is handled by platform-specific APIs. These APIs have been abstracted in many toolkits.

OpenGL-specific toolkits. These toolkits are designed specifically around creating and managing OpenGL windows.

GLUT : A crossplatform windowing and keyboard/mouse handler. Very old, consider using other toolkits instead.

freeGLUT : A crossplatform windowing and keyboard/mouse handler. Its API is a superset of the GLUT API, and it is more stable and up to date than GLUT.

GLFW : A crossplatform windowing and keyboard/mouse/joystick handler. Contrary to GLUT, this is more aimed for creating games. Supports Windows, Mac OS X and Unix-like systems such as Linux and FreeBSD.

Multimedia libraries. Several multimedia libraries that can create OpenGL windows. These libraries include the ability to create OpenGL windows as part of their focus on being cross-platform libraries for using multiple media.

SFML : A cross-platform multimedia C++ API that provides you low and high level access to graphics, input, audio, etc. Free, still updated and written in C++.

Allegro version 5: A cross-platform multimedia C API focused on game development. It creates an OpenGL context (or D3D if on windows and you ask for one), and has a number of convenience functions and major subsystems useful to game developers.

Widget toolkits. Many widget toolkits have the ability to create OpenGL windows, but their primary focus is on being widget toolkits.

Utilities

Image and Texture Libraries

GLAUX : this is a very old library that should not be used anymore. Most people who encounter GLAUX are people who see the NeHe tutorials which haven't been updated in years. NeHe uses auxDIBImageLoad() in order to read BMP files. GLAUX is no longer available.

DevIL: DevIL stands for Developers Image Library. It supports many image formats for reading and writing, it supports several compilers and OS (Win, Linux, Mac OSX). The library has a OpenGL-like syntax. It has not been updated recently.

FreeImage: FreeImage is an cross-platform image-loading library, with very wide support for image formats (including some HDR formats like OpenEXR).

GLI: GLI( OpenGL Image ) is a small cross-platform C++ image library able to load DDS textures (DDS9 and DDS10), compressed or uncompressed. It is licensed under the MIT license.

Math Libraries

GLM: GLM ( OpenGL Mathematics ) is a cross-platform C++ mathematics library designed to match the GLSL math functions. It also provides vectors and matrices classes and functions to replace the deprecated OpenGL functions and many more features from half-precision floating point or quaternions. It is licensed under the MIT license.

TVMet: The Tiny Vector Matrix library using Expression Templates. This math library is focused on performance via the use of expression template metaprogramming techniques and lazy evaluation. It is licensed under a modified from of the GNU LGPL license. The license modification specifically allows static linking without having the entire program be subject to LGPL.

Toolkits top on OpenGL

Many programming interfaces are layered on top of OpenGL, providing rich and varied functionality. Not all can interoperate.

Scene graphs

A scene graph is a layer on top of OpenGL that manages objects, their transforms in the world, and various other concepts.

A cross platform C++ toolkit library with a BSD style license. Essentially the library offers a series of different functionality under a streamlined API. Its primary focus is on games, although not limited for that usage only.

Sound or Audio Libraries

OpenAL stands for Open Audio Library. It is maintained by people at Creative and nVidia and users. Multi OS support (Win, Linux, Mac OSX). The library has a OpenGL like syntax so it is easy to use. Closed source and open source portions. Access to special SoundBlaster features through extensions.