Help end child hunger

Very Simple * Libs

This is the home page for some (very simple) libraries to work with core OpenGL.

The Very Simple * Libs (VS*L) are a set of classes that aim at providing developers with tools to make their life easier. The following simplified class diagram shows all the libs and their relationships.

Very Simple Font Library – Text rendering is very useful to display information on top of a 3D world. VSFontLib aims at providing users with the ability to render bitmapped text in an OpenGL application using the core profile.

With immediate mode gone in core OpenGL versions, so are the vast majority of font libs that worked with OpenGL. Immediate mode was terribly slow, and code wise very extensive. Vertex Buffers are clearly the way to go. This lib uses VAOs and vertex buffers to render text.


Very Simple OpenGL Information Lib – OpenGL has a rich set of functions to query its state. It is possible to get information on just about anything, from which shaders are attached to a program, to the values of uniforms, or the properties of the textures currently bound.

However, it is also true, that to get some of this information a lot of code is required. When debugging, we end up writing code to access this and that information over and over again.

This lib attempts to provide all the information with a minimal effort to the developer, for textures, buffers, GLSL programs, shaders, and variables, and a few more items.


Very Simple Log Library – Logging is one of those things that we keep doing when debugging. This library provides a very basic logging mechanism that accepts strings as log messages, printf style, and can ouput to strings and files.


Very Simple Math Library – One of the features that was not selected to be part of the core functionality was matrix handling. Previously we had OpenGL and GLU functions that provided the means for easily setting the camera, defining projections, and performing geometric transformations on graphical objects.

This lib aims at providing users with a functionality similar to the one available in OpenGL pre 3.0. I’ve been using OpenGL for a long time and those matrix handling functions served most of my purposes when programming graphics, hence I grew fond of them. I missed them in the new OpenGL versions so I decided to write a simple lib to perform the same tasks in a very similar way.


Very Simple Profile Library – Optimization is a must in computer graphics applications, mainly in those devoted to real-time interaction, such as visualization and games. One possibility is to optimise everything that can be optimised, but this is in most cases a waste of time. There are segments in our applications that when optimised bring an overall gain in efficiency to our application, but this is not true for all segments.

VSProfileLib, a component of the Very Simple * Libraries, brings a profiler which you can display on top of your application using OpenGL. There are no dependencies whatsoever, and the only requirement to display the profile report on top of the application is a function to display a string. In OpenGL you can use VSFontLib, another component of the Very Simple * Libraries.


Very Simple Resource Model Lib – This lib provides an interface to model loading lib Assimp, and is able to render the loaded models with core OpenGL.


Very Simple Resource Lib – This lib is only an abstract class from which VSResModelLib and VSFontLib derive. It provides a common set of function signatures and some utilities for these libs.


Very Simple Shader Lib – Shaders are the core of the rendering process. OpenGL core profile requires us to provide our own shaders, no more fixed function. This lib allows to create programs, load shaders from files, associate vertex attribute names with locations, and work with uniforms, including blocks. It also provides access to the info logs.

3 Responses to “Very Simple * Libs”

  1. Hi, I would like to incorporate a modified version of some of the VS*L set in a project of mine (a GPL licensed game). What are the license terms, if any, of these libraries?

    Thanks!

© 2014 Lighthouse3d.com Suffusion theme by Sayontan Sinha