XML-metadata-based GLSL shader framework

Slight API changes

The API has been slightly updated in order to offer a little more flexibility.

The change concerns the handling of the ZShaderManager-Singleton: its type is now a (Boost-Shared) Pointer to the KShaderManager. This means, you must access the functions through the "->" operator and not the "." operator. Furthermore, you have to EXPLICITELY initialize the pointer. The call for doing so is as follows: "SINGLETON(ZShaderManager) = KShaderManagerPtr(new KShaderManager);".

I will write a tutorial if I find some time (well, not this year).

Geometry shader

I have slightly modified the core source in order to offer support for geometry shader through the "GL_EXT_geometry_shader4" extension. This update's implemention is based on Xie Yongming's Geometry Shader Tutorials, yet the implementation has not been thouroughly tested.

There are no new release packages, only the SVN version updated, though.

I will need to test this functionality, especially the shader switching part for geo-shaders before I can create a new release.


I forgot to write a README file. So here is the short help text to the BIN archive:

The BIN package contains the executables and several DLL files needed to run the programs. The 2 main programs are "demo_kagefx.exe" and "test_kagefx.exe".


test_kagefx is a program to test the shader switching functionality of libKAGEfx. You have to run it from the shell using the following command:

test_kagefx file.xml

With file.xml as the KAGEfx-ShaderCollection in XML.

While running the program, you can use the follwing commands:

  • "escape" and "q" to quit
  • "p" to make the contour visible. (There are some bugs, though).
  • "0" to "9" in order to switch the shader module "fragment_main" in several LOD levels.
  • "+" and "-" to increment / decrement the complete LOD of the current program
  • "a" and "b" to switch the current program from "test_A" to "test_B" and reverse.
  • "" and "" to increment / decrement the LOD of the "fragment_main" module.


demo_kagefx is a small test application to demonstrate the useo of libKAGEfx for adaptive shaders for dynamic LOD. The LOD-algorithm isn't very advanced (and quite buggy), but it should suffice as a demo.

Start it with "demo_kagefx file.xml shaderProgam1 shaderProgram2"

with file.xml the KAGEfx-ShaderCollection and shaderProgram the programs applied to the two objects.

Note that you a need an OpenGL2.0-capable graphics card with the newest drivers to try the programs.


The source code of KAGEfx has been uploaded to SF's subversion server.

First release on Sourceforge

The 3 packages (SRC, SDK, BIN) have been released on Sourceforge.net.

Follow the link to download them.

Previous page | Next page