Help end child hunger

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.

Shaders are the core of the rendering process. OpenGL core profile requires us to provide our own shaders, no more fixed function.

Using shaders means more flexibility, but it also implies more work. This is where this lib steps in.

VSShaderLib was designed to make our life easier. It allows to create programs, load shaders from files, associate vertex attribute names with locations, and work with uniforms, including uniforms in named blocks. It also provides access to the info logs.

G-Truc Creation has been building a samples pack for OpenGL that covers versions from 2.1 up to 4.1 This latest release has reached the 100 samples mark. An invaluable source of code for the newest versions.

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.

The Very Simple Matrix Library (VSML) aims at providing users with a functionality similar to the one available up to OpenGL 3.2. 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.

Learning Modern 3D Graphics Programming is almost an online book on core OpenGL. It covers a lot of ground, from drawing a triangle to HDR. The index promises a continuation onto texturing, render targets, and advanced lighting.

ShaderGen is an old tool from 3D labs, but its usefulness is not gone. The tool creates shaders that mimic the results of a set of fixed function state. There is a large set of options to define a state as available in OpenGL compatibility mode. Lighting, Fog, and all the other features that are gone in core profiles. Select the options you desire, check the result with fixed functionality, and then press “generate”. The tool creates the shaders that emulate those fixed function features. It only produces GLSL 1.2 code, but conversion shouldn’t be an issue.

This is an OpenGL 3.3 + GLSL 3.3 sample that loads and displays a 3D model with Assimp. It also uses DevIL in case the model has textures. It was based on Assimps OpenGL demo and it extends it to support OpenGL 3.3

The sample uses Texturing, Vertex Array Objects, and Uniform Blocks. Camera can move around the object using the mouse, and the mousewheel can be used to zoom on the model, courtesy of freeglut.

GPU Tools | AMD Developer Central.

AMD has an excellent  collection of tools for OpenCL and Shader development in the GPU Tools area. Included are PerfStudio, a performance analysis and debugging tool, and ShaderAnalizer for analysing the performance of individual shaders. Currently they only work with Compatibility Profile, hope an update will cover the more recent versions.

© 2014 Lighthouse3d.com Suffusion theme by Sayontan Sinha