Class SoShaderParameter

All Implemented Interfaces:
SafeDisposable
Direct Known Subclasses:
SoShaderParameterBufferObject, SoShaderParameterImage, SoUniformShaderParameter, SoVertexShaderParameter

public class SoShaderParameter extends SoNode
Abstract base class for all shader parameter nodes. This is the abstract class from which all the shader parameter nodes are derived. There are two families of shader parameter nodes:
  • Uniform parameters
    Uniform parameters are used to pass data values to shader programs. A uniform parameter is effectively a constant for all executions of a shader during one render traversal. There is a specific class for each uniform parameter data type, e.g. use SoShaderParameter1i for a single integer parameter. See the base class SoUniformShaderParameter for examples of setting a parameter.
  • Vertex parameters
    Vertex parameters are used to pass per-vertex data values to shader programs. A vertex parameter is effectively an array of values, one per vertex. There is a specific class for each vertex parameter data type, e.g. use SoVertexShaderParameter1f to specific a single float value for each vertex. See the base class SoVertexShaderParameter for examples of setting a parameter.

Each parameter is defined by one or both of the following properties:

  • name,
  • identifier,

There are two ways to specify the name of a parameter: using the field name to specify a string, or using the field identifier to specify an integer. This is because assembly languages (e.g., ARB_vertex_program/ARB_fragment_program) have index naming conventions rather than string naming conventions, whereas with Cg/GLSL, it is exactly the opposite. The two fields (name and identifier) allow specification of uniform parameters for both types of language. Depending on the language (ARB_, Cg, or GLSL), only one of the two fields will be used.

Specific subclasses add fields to hold a specific type of value.

File format/default:

This is an abstract class. See the reference page of a derived class for the format and default values.

Action behavior:

Sets: SoUniformShaderParameterElement, SoVertexShaderParameterElement

See Also:
  • Field Details

    • name

      public final SoSFString name
      Specifies the parameter's string name which is declared and used within high-level shading programs.
    • identifier

      public final SoSFInt32 identifier
      Specifies the parameter's integer name which is declared and used within low-level shading programs.