Post

ProgramShader

ProgramShader

Overview

ProgramShader defines a shader that consists of one or more individually programmable, self-contained pieces. ProgramShader contains IS/connect and programs [ShaderProgram] nodes.

The ProgramShader node belongs to the Shaders component and requires at least support level 1, its default container field is shaders. It is available from X3D version 3.0 or higher.

Hierarchy

1
2
3
4
+ X3DNode
  + X3DAppearanceChildNode
    + X3DShaderNode
      + ProgramShader

Fields

SFNode [in, out] metadata NULL [X3DMetadataObject]

Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.

Hint

SFBool [in] activate

activate forces the shader to activate the contained objects.

Warning

  • It is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events.

SFBool [out] isSelected

isSelected indicates this shader instance is selected for use by browser

Warning

  • It is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events.

SFBool [out] isValid

isValid indicates whether current shader objects can be run as a shader program.

Warning

  • It is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events.

SFString [ ] language “” [“Cg”|”GLSL”|”HLSL”|…]

The language field indicates to the X3D player which shading language is used. The language field may be used to optionally determine the language type if no MIME-type information is available.

Hint

  • Recognized values include “Cg” “GLSL” “HLSL”.

MFNode [in, out] programs [ ] [ShaderProgram]

ProgramShader contains zero or more ShaderProgram node instances. In general, only two ShaderProgram instances are needed: one each for vertex and fragment processing.

Hint

  • Each shader language defines required behavior for processing this field.

Advice

Hint

  • Apply default containerField='shaders' when parent node is Appearance.

Warning

  • ProgramShader contains no field declarations and no plain-text CDATA block source code.

See Also

This post is licensed under CC BY 4.0 by the author.