OpenSceneGraph/examples/osgshaders
2004-11-10 09:56:03 +00:00
..
GL2Scene.cpp From Mike Weiblen, fix to the state leakage. 2004-11-10 09:56:03 +00:00
GL2Scene.h
GNUmakefile
GNUmakefile.inst
Noise.cpp Updates to osgGL2 from Mike Weiblen 2004-01-03 09:06:52 +00:00
Noise.h
osgshaders.cpp
README.txt

osgshaders/README.txt - mike.weiblen@3dlabs.com - 2003-09-30
Copyright 2003 3Dlabs Inc.

osgshaders is a simple demo of the OpenGL Shading Language, as supported in the
Open Scene Graph using the "osgGL2" library.

Demonstrated are:
- loading, compiling and linking OpenGL Shading Language (OGLSL) shaders.
- multicontext support (use different Producer configurations to create
  multiple windows)
- "uniform" variable support: enables an application to set parameters for
  shaders at runtime for animation, etc.
- multi-texture support: using textures both as applied imagery and as lookup
  tables for controlling shader behavior.

The two screen grabs show the demo at the extremes of a periodic animation
parameter.


WHAT's ON THE SCREEN?

1st row: the Marble shader, consisting of white marble with green veins.
The veins are animated to slosh back and forth, and look somewhat like
bands of stormclouds on Jupiter.

2nd row: the Eroded shader, which demonstrates the OGLSL "discard" command.
The animation erodes the surface of the objects based on a noise texture,
for an effect similar to rusting.

3rd row: the Blocky shader, which demonstrates animated scaling in the vertex
shader, as well as color animation using uniform variables set by the app.

4th row: the Microshader, an extremely simple shader which colors fragments
based on their position.  It's small codesize makes it convenient to hardcode
directly into the application source.


RUNTIME KEY COMMANDS

These key commands are included in the onscreen help (as displayed by pressing
the "h" key):

x - Reload and recompile shader source code from their files.
    You may edit the shader source code file, and recompile the shaders
    while the application runs.

y - toggle shader enable.

#EOF