<Program>

A <Program> node is linked to ASCII files containing a GLSL vertex, control, evaluation, geometry, fragment, or compute shader program. A <Program> may specify only a compute shader, or it must specify at least a vertex and fragment shader. Similarly, a <Program> that specifies a tessellation shader must specify both the control shader and evaluation shader. Objects of type <Program> are bound when a <Mesh> is rendered by way of the <Mesh>'s <Material> nodes being connected to one or more <Program> nodes.

Registration

Class registration and implementation information is as follows:

Category Documentation
ImplementationC++
ModuleCore-App-Geometry
Class HierarchyNode » Group » Program
Data Interface NameProgram
Type StatusActive
Is Final TypeYes

<Program> Properties

Properties are as follows:

Property Documentation
Pipeline Mode: Graphics PipelineGraphics is for vertex, control, evaluation, geometry, and fragment shaders.
Pipeline Mode: Compute PipelineCompute is for compute shaders only.
Pipeline Mode: Task/Mesh PipelineTask/Mesh is for task, mesh, and fragment shaders.
Shading Language VersionA list of GLSL shading language versions. This is used to insert the #version directive in the shader source code if that option is enabled.
Shading Language ProfileA list of GLSL shading language profiles. This is used to insert the #version directive in the shader source code if that option is enabled.
Inject VersionThis value is typically true. If true, a version declaration such as #version 450 core or #version 300 es is injected into your shader code while the application is running.
Vertex Program FileThe absolute or relative path to the vertex shader source code. Only visible when Pipeline Mode is set to Graphics.
Tessellation Control Program FileThe absolute or relative path to the tessellation control shader source code. Only visible when Pipeline Mode is set to Graphics.
Tessellation Evaluation Program FileThe absolute or relative path to the tessellation evaluation shader source code. Only visible when Pipeline Mode is set to Graphics.
Geometry Program FileThe absolute or relative path to the geometry shader source code. Only visible when Pipeline Mode is set to Graphics.
Fragment Program FileThe absolute or relative path to the fragment shader source code. Only visible when Pipeline Mode is set to Graphics.
Compute Program FileThe absolute or relative path to the compute shader source code. Only visible when Pipeline Mode is set to Compute.
Task Program FileThe absolute or relative path to the task shader source code. Only visible when Pipeline Mode is set to Task/Mesh.
Mesh Program FileThe absolute or relative path to the mesh shader source code. Only visible when Pipeline Mode is set to Task/Mesh.
MeshA <ParametricMesh> node this <Program> renders. This option is generally not used, but it can be useful to avoid strange graph traversal paradoxes. Typically the <Program> comes before the <ParametricMesh> in the document, so this is useful to be able to access the mesh data if needed for application commands. This has no effect whatsoever on rendering data flow.
SamplersA <SamplerPaletteNode> containing the samplers associated with this <Program> This option is generally not used, but it can be useful to avoid strange graph traversal paradoxes.
Render Before Program CompilationA node that you wish to traverse before the <Program> is rendered. This option is generally not used, but it can be useful to avoid data duplication or strange graph traversal hacks.
Render While Rendering ProgramA node that you wish to traverse when the <Program> is rendered. This option is generally not used, but it can be useful to avoid data duplication or strange graph traversal hacks.

<Group> Properties

Properties are as follows:

Property Documentation
VisibleToggles the <Group>'s visible/invisible". Child nodes are not visible when their parent <Group>'s is invisible.
CollisionsToggles collision detection on the <Group> node and its children". This is used for runtime export and has no effect in Simdify applications.
CullToggles view volume culling on/off". modifying this parameter may cause incorrect culling and other unexpected consequences.
Preserve CameraThis option is undocumented at present.
Generic Data SourceThis option provides the capability to connect a <Group>'s to a node that serves as a generic data source.
Bounding Box FrozenFreezes the bounding box at its current size. This is often used as a runtime flag, and modifying this parameter may cause incorrect culling.
Minimum XDisplays the minimum bounding box coordinate on the X axis.
Minimum YDisplays the minimum bounding box coordinate on the Y axis.
Minimum ZDisplays the minimum bounding box coordinate on the Z axis.
Maximum XDisplays the maximum bounding box coordinate on the X axis.
Maximum YDisplays the maximum bounding box coordinate on the Y axis.
Maximum ZDisplays the maximum bounding box coordinate on the Z axis.
Transform LockedLocks the node and prevents transformation of the node and its children. This is a runtime flag and has no effect in Simdify applications.
Position XDisplays the node's position on the X axis.
Position YDisplays the node's position on the Y axis.
Position ZDisplays the node's position on the Z axis.
Orientation XDisplays the node's orientation on the X axis.
Orientation YDisplays the node's orientation on the Y axis.
Orientation ZDisplays the node's orientation on the Z axis.
Scale XDisplays the node's scale on the X axis.
Scale YDisplays the node's scale on the Y axis.
Scale ZDisplays the node's scale on the Z axis.
BillboardSets the node as a billboard. Billboards rotate to face the camera. This feature has been preserved for compatibility purposes, but this functionality should be implemented with geometry shaders.

<Node> Properties

Properties are as follows:

Property Documentation
NameSets orthe name of the node. Do not use / or \ [forward slash and backslash] in the node name as this produces conflicts with resolving link nodes that reference external files.
ClassSets the class of the node.
IDSets the ID of the node. This must be unique for each document, but different documents can use the same ID.
Import DisabledDetermines whether or not the node is imported during an import process such as when nodes are imported from a template during document creation. Note that this flag is mostly in Simdify Scripting language.
Export DisabledDetermines whether or not the node is exported during an export process, or possibly other purposes. This flag is set to No and current Simdify exporters ignore it (but it can be very useful if you need to modify the exporters).
GuidEnumerates the Node's GUID.