NShader is a Visual Studio extension that provides syntax highlighting in VS 2008 and 2010 (express editions are not supported). The following extensions are recognized: .glsl, .frag, .vert, .fp, .vp, .geom (no tessellation shaders yet ).
VSMathLib, a part of the Very Simple Libraries framework, has suffered a minor update. The modelview matrix has been split into two matrices: model and view. The modelview matrix is still available, but now it is a computed matrix. The programmer should use the two individual matrices, model and view, and the lib will compute the modelview, actually called VIEW_MODEL, as required.
The PROJMODELVIEW has been renamed to PROJ_VIEW_MODEL since this is the actual order of the matrix multiplication.
Besides that the lib works as usual. Comments are most welcome as usual.
A sample using all the libs in the Very Simple framework is now available from the VS*L downloads page. The sample source C code, shaders, a 3D model, and textures, are provided, as well as a Visual Studio 2010 solution.
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.
Christophe wrote an excellent call for bug reports on the OpenGL, GLSL and extension specs.
“Getting OpenGL implementations better is not only the duty of implementers but also of the OpenGL programmers. There is something worse than a bug: there is an unknowned bug.”
One of the bugs reported in here has been corrected. The uniform buffer data size is now reported correctly.
The other two bugs remain, unfortunately. Querying the primitive counter still gives zero, and glEnable(GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB) still crashes the application.
Two more libs are available in the VS*L framework. With these new additions it is possible to use Assimp to load 3D models, and render them with core OpenGL. The libs store the meshes in VAOs, and use VSShaderLib and VSMathLib to simplify the rendering with shaders with almost any uniform variable configuration.
VSML has been renamed to VSMathLib. Too many libs in the pipeline to keep naming them with a single letter
The M stood for Matrix, yet as now the library also contains vector operations, I think the new name fits better with the content.
Another addition is the availability of the normal and projection-view-model matrices. These are commonly used in shaders, and it doesn’t make sense to keep computing it for every vertex.
Finally, the lib now works with the VSShaderLib to provide a more general method for uniform variable settings.
Bug reports are most welcome.
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.