Help end child hunger

Libs that work great with OpenGL

Prev: Working with Core OpenGL in WX Wigets Next: GLUT and FreeGLUT

A small list of some libraries that may be useful when building an OpenGL application. All libs are cross-platform, and some are even open source.

What are your favourite libs? What do you use to get the work done? Feedback is most welcome.

3D Model Import and Export

Assimp – Open Asset Import Library

Assimp is a Cross-Platform Open Source Library to load 3D modes. Currently, as of version 3.0, it can import an impressive list of formats and it also exports to Collada, OBJ, STL and PLY. Once loaded, all the models attributes are easily accessible through the API.

The library also performs some post processing tasks on the imported models. These range from the common triangulation and conversion to left handed systems (Direct3D is an example), to mesh performance tunning and improve vertex cache locality.

Assimp is tailored at typical game scenarios by supporting a node hierarchy, static or skinned meshes, materials, bone animations and potential texture data.

It is fairly easy to use Assimp in an OpenGL context, and a few demos are provided in the release package. A small tutorial and demo on how to use Assimp with modern OpenGL can be found in here.

Image Loading and Writing

DevIl – Developers Image Library

DevIl is a Cross-Platform Open Source Library that deals with images. It can load and write many different formats. It can also perform some post-processing effects, such as conversion between dtat types and formats and provides access to the image data.

It easily integrates with OpenGL and DirectX, providing special functions to create textures.

Extension Loading

GLEW – The OpenGL Extensions Wrangler Library

GLEW takes care of extension loading in a transparent and easy manner, allowing us to use the latest OpenGL versions and extensions. All that is required is a single function call to init GLEW, and the most recent OpenGL functionality is available (provided you have the proper hardware, of course).

GLEW also allows us to check our hardware capabilities.

Window System Toolkits

OpenGL only provides graphics functionality. But before one is able to draw a single primitive a window must be created. There are several toolkits available out there that create a layer between our OpenGL application and the OS. Most of these toolkits also deal with user input, via keyboard oer mouse, and provide a simple interface to deal with window events.

Perhaps the most simple and easy to learn is GLUT (check the GLUT tutorial). While no longer maintained it still fullfil most of our needs to write small applications. There are some “new” versions of GLUT, such as freeGLUT, which is a Open Source alternative to GLUT. freeGLUT provides some added functionality such as context setting.

Slightly more complex options, but still easy to learn, are available such as SDL – Simple DirectMedia Layer  (version 1.3 seems promissing) and SMFL – Simple and Fast Multimedia Library.

Then we have the heavy weights, such as wxWidgets and Qt. These are more complex but provide a lot of features not available on the previous toolkits.

Graphics User Interface

Apart from the heavy weight systems, there is no support for GUI. To be able to open windows on top of our OpenGL rendering and have nice dialogs for input there is a library called CEGUI – Crazy Eddis GUI. It works on top of a window system toolkit, and offers GUI functionality.




Prev: Working with Core OpenGL in WX Wigets Next: GLUT and FreeGLUT

  2 Responses to “Libs that work great with OpenGL”

  1. GLFW is a stable, cross-plaform, open library for handling window/context creating, receiving input and handling events.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: