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”
Leave a Reply Cancel reply
This site uses Akismet to reduce spam. Learn how your comment data is processed.
GLFW is a stable, cross-plaform, open library for handling window/context creating, receiving input and handling events.
Thanks for the feedback. I’ll add it soon.