Coin: Shader Classes

| Coin3D is Free Software, published under the BSD 3-clause license. | https://coin3d.github.io https://www.kongsberg.com/en/kogt/

Shader Classes

Shaders are programs that run on the graphics processor and replace the formerly fixed OpenGL pipeline. More...

## Classes
class | SoVertexAttribute
| A generic node for providing GL vertex attributes of various types. More...
class | SoVertexAttributeBinding
| The SoVertexAttributeBinding class is a node for setting up how vertex attributes are mapped to shapes. More...
class | SoFragmentShader
| The SoFragmentShader class is used for setting up fragment shader programs. More...
class | SoGeometryShader
| The SoGeometryShader class is used for loading geometry shader programs. More...
class | SoShaderObject
| The SoShaderObject class is the superclass for all shader classes in Coin. More...
class | SoShaderParameter
| The SoShaderParameter class is the base class for all shader parameter classes. More...
class | SoUniformShaderParameter
| The SoUniformShaderParameter class is the base class for all uniform shader variables. More...
class | SoShaderParameter1f
| The SoShaderParameter1f class is used to define a floating point value as shader parameter. More...
class | SoShaderParameter1i
| The SoShaderParameter1i class is used to define an integer value as shader parameter. More...
class | SoShaderParameter2f
| The SoShaderParameter2f class is used to define a two-dimensional floating point value as shader parameter. More...
class | SoShaderParameter2i
| The SoShaderParameter2i class is used to define a two-dimensional integer value as shader parameter. More...
class | SoShaderParameter3f
| The SoShaderParameter3f class is used to define a three-dimensional floating point value as shader parameter. More...
class | SoShaderParameter3i
| The SoShaderParameter3i class is used to define a three-dimensional integer value as shader parameter. More...
class | SoShaderParameter4f
| The SoShaderParameter4f class is used to define a four-dimensional floating point value as shader parameter. More...
class | SoShaderParameter4i
| The SoShaderParameter4i class is used to define a four-dimensional integer value as shader parameter. More...
class | SoShaderParameterArray1f
| The SoShaderParameterArray1f class is used to define a floating point array as shader parameter. More...
class | SoShaderParameterArray1i
| The SoShaderParameterArray1i class is used to define an integer array as shader parameter. More...
class | SoShaderParameterArray2f
| The SoShaderParameterArray2f class is used to define a two-dimensional floating point array as shader parameter. More...
class | SoShaderParameterArray2i
| The SoShaderParameterArray2i class is used to define a two-dimensional integer array as shader parameter. More...
class | SoShaderParameterArray3f
| The SoShaderParameterArray3f class is used to define a three-dimensional floating point array as shader parameter. More...
class | SoShaderParameterArray3i
| The SoShaderParameterArray3i class is used to define a three-dimensional integer array as shader parameter. More...
class | SoShaderParameterArray4f
| The SoShaderParameterArray4f class is used to define a four-dimensional floating point array as shader parameter. More...
class | SoShaderParameterArray4i
| The SoShaderParameterArray4i class is used to define a four-dimensional integer array as shader parameter. More...
class | SoShaderParameterMatrix
| The SoShaderParameterMatrix class is used to define a matrix as shader parameter. More...
class | SoShaderParameterMatrixArray
| The SoShaderParameterMatrixArray class is used to define a matrix array as shader parameter. More...
class | SoShaderStateMatrixParameter
| The SoShaderStateMatrixParameter class is used to define a matrix as shader parameter whose content is derived from the traversal state. More...
class | SoShaderProgram
| The SoShaderProgram class is used to specify a set of vertex/geometry/fragment objects. More...
class | SoVertexShader
| The SoVertexShader class is used for setting up vertex shader programs. More...

## Detailed Description

Shaders are programs that run on the graphics processor and replace the formerly fixed OpenGL pipeline.

Coin-2.5 added support for Shaders. Shaders replace the fixed function vertex and fragment processing in OpenGL by letting the user define the processing that takes place at key points in the OpenGL pipeline. Vertex shaders handle the operations that occur on each vertex, while fragment shaders handle the operations that occur on each pixel. The SoShaderProgram node in Coin provides a convenient way of specifying the code for vertex and fragment shaders.

Coin-3.0 expanded upon the shader support by adding support for OpenGL Vertex Attributes. When using shaders, programmers are no longer limited to the set of attributes that OpenGL defines (glColor, glNormal, glTexCoord etc.) You can now define your own per-vertex data and pass them to the shaders using the SoVertexAttribute node.