/** 
 * @defgroup VolumeVizShaders VolumeViz Shader API
 * @ingroup ShaderAPI
 *
 * The VolumeViz shader pipeline is composed of multiple stages. Some can be customized by the application
 * to create specific rendering effects, custom co-blending operators or attribute computation tasks.
 * The whole pipeline is managed by the SoVolumeShader node and customizable stages are defined by the
 * SoVolumeShader::ShaderPosition enum.
 *
 * This document describes all GLSL methods, macros and uniforms exposed by the VolumeViz
 * pipeline for customization purposes.
 *
 * VolumeViz uses the following pipeline to achieve rendering. This pipeline is common to all VolumeViz shapes.
 * @IMAGE VolumeViz/shader_pipeline.png
 *
 * @SEE_ALSO
 *   SoVolumeShader
 *   SoVolumeRenderingQuality
 *   SoVolumeIsosurface
 *
 */

/**
 * @defgroup VolumeVizShadersData Data structures and constant
 * @ingroup VolumeVizShaders
 *
 * @VREXT VolumeViz GLSL shaders data structures and constants.
 *
 * The following pre-processing directives are dynamically added to the shader pipeline
 * and can be used by application defined shader functions.
 * 
 *  -@anchor VVIZ_DATARGBA @I@B VVIZ_DATARGBA @b@i: Is true if VVizData (VolumeViz input data) contains RGBA values. @BR
 *   In this case each value in VVizData is a vec4.  Otherwise each value is a float. @BR
 *   (Before Open Inventor 8.5 only float values were supported.)
 *
 *  -@anchor VVIZ_DATATYPE @I@B VVIZ_DATATYPE @b@i: A string defining the GLSL data type in the volume (VVizData). @BR
 *    If VVIZ_DATARGBA is true, then VVIZ_DATATYPE is defined as "vec4", in all other cases
 *    it is defined as "float". @BR  (Before Open Inventor 8.5 only type float was supported.)
 *
 *  -@anchor VVIZ_NUM_CLIPPING_PLANES @I@B VVIZ_NUM_CLIPPING_PLANES @b@i: Defines the current numbers of GL clipping planes to take in account. @BR
 *
 *  -@anchor VVIZ_SHAPE_TYPE @I@B VVIZ_SHAPE_TYPE @b@i: Define the shape that is currently rendered. @BR
 *    It can be usefull to specialize shader behavior depending on dhape type. It can be VVIZ_VRENDER, VVIZ_SLICE, VVIZ_OBLSLICE,
 *    VVIZ_VGEOM, VVIZ_VSKIN or VVIZ_HEIGHTFIELD.
 */ 
 

/**
 * @defgroup VolumeVizVertexShaders Vertex shaders
 * @ingroup VolumeVizShaders
 *
 * @VREXT VolumeViz GLSL vertex shaders API.
 */

/**
 * @defgroup VolumeVizTessellationShaders Tessellation shaders
 * @ingroup VolumeVizShaders
 *
 * @VREXT VolumeViz GLSL tessellation shaders API.
 */

/**
 * @defgroup VolumeVizFragmentShaders Fragment shaders
 * @ingroup VolumeVizShaders
 *
 * @VREXT VolumeViz GLSL fragment shaders API.
 *
 */
