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.