Home Page

ShaderGen - Fixed Functionality Shader Generation Tool

The purpose of this application is to show that programmable hardware can be used to obtain the same rendering results as the OpenGL fixed function path. This can be useful as a starting point if you want to use the OpenGL Shading Language to create an effect that is similar to what can be done with fixed functionality.


ShaderGen allows you to set the parameters for fixed function rendering through a convenient GUI. With the click of a mouse, ShaderGen creates an OpenGL shader that will produce the same result as the fixed function state you've set. You can then toggle the OpenGL window to display either the programmable shader result or the fixed function result.


OSI Certified

Some other benefits of ShaderGen:

  • Use it to test the OpenGL driver/compiler for identical results between the fixed function path and the equivalent OpenGL shader code.
  • Learn how to use OpenGL Shading Language built-in uniforms to access OpenGL state.
  • Understand fixed function computations by studying the equivalent shader code.

NOTE: This is intended to be a tool for learning, not for generating the most efficient shaders possible. The code is intended to be as clear as possible, and follows closely the code given in chapter 9 of the OpenGL Shading Language book.

ShaderGen Windows installer
10 Nov 2005
14.82 MB
ShaderGen source code and support files
10 Nov 2005
28.56 MB
ShaderGen source code only
10 Nov 2005
0.36 MB


NOTE: ShaderGen 3.0 requires OpenGL 2.0 drivers. The installer contains the win32 executable, developed with VisualStudio.net. ShaderGen source code is made available under a revised BSD-style open source license, and leverages other open source software such as wxWidgets and GLEW.

The screenshot below shows the programmable equivalent of fixed function OpenGL bump mapping. ShaderGen accomplishes this by using a normal map texture, a color texture and the texture combine environment mode. These features, along with the addition of separate specular lighting allow for the creation of complex effects such as bump mapping. Other exciting new features in GLSL ShaderGen 3.0 include improved output text windows, the ability to clear the infolog with the click of a button and nine additional textures!