Help end child hunger
Jun 082011
 

In March, 2010, the Khronos group approved an extension to add timers to OpenGL. The version was 3.2. As of OpenGL 3.3 this functionality has become part of the specification.

As mention in the Very Simple Profile Library page, profiling is an essential technique to truly understand how to improve the performance of an application. Being able to get time measurements is important both in the development stage as well as during run-time after the application has been released. OpenGL Timer Queries allows us to profile the GPU. i.e. to determine the amount of time it takes to execute a command, or sequence of commands in the GPU.

A tutorial is available in here describing the OpenGL timer functions, showing how to use them, and describing a double buffer approach to prevent the application from being stalled while waiting for query results.

Jun 032011
 

A Siggraph 2010 course

“There are strong indications that the future of interactive graphics programming is a model more flexible than today’s OpenGL/Direct3D pipelines. As such, graphics developers need to have a basic understanding of how to combine emerging parallel programming techniques and more flexible graphics processors with the traditional interactive rendering pipeline. The first half of the course introduces attendees to modern parallel graphics architectures and parallel programming models, and describes current and near-term use of these new capabilities for real-time rendering. The second half of the course looks farther ahead at trends emerging in the academic literature and offline rendering communities as researchers use these many-core parallel architectures to explore future rendering pipelines. Topics include future, and more flexible, rendering pipelines that support true motion blur, depth-of-field, curved surfaces, and complex dynamic lighting. The course concludes with a panel, moderated by the creator of OpenGL Kurt Akeley, on the role of fixed function hardware in future graphics architectures.”

Slides available in here.

May 242011
 

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.

VSPL, 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 VSFL, another component of the Very Simple * Libraries.

May 232011
 

VSFL has suffered a minor update to be able to render fixed size fonts such as Courier New. Previously all chars would have the optimal length, but this makes formatted printing difficult in some circumstances. A new parameter has been added to the loadFont method to specify if the font is to be rendered with fixed size chars, or not (the default setting). Also a new font has been added to the package, Courier New, which can take advantage of this feature.

May 162011
 

Very Simple Font Library – Text rendering is very useful to display information on top of a 3D world. VSFL 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.

May 132011
 

The Very Simple Matrix Library (VSML)  header file has been updated to include comments suitable for Doxygen. Some bugs on the frustum and ortho functions were also cleared. I’ve also installed a plug-in for some nice syntax highlight which I hope it makes code reading easier. If you find any other bugs please let me know.

 Tagged with: