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.
Class registration and implementation information is as follows:
Category | Documentation |
---|---|
Implementation | C++ |
Module | Core-App-Geometry |
Class Hierarchy | Node » Group » Program |
Data Interface Name | Program |
Type Status | Active |
Is Final Type | Yes |
Properties are as follows:
Property | Documentation |
---|---|
Pipeline Mode: Graphics Pipeline | Graphics is for vertex, control, evaluation, geometry, and fragment shaders. |
Pipeline Mode: Compute Pipeline | Compute is for compute shaders only. |
Pipeline Mode: Task/Mesh Pipeline | Task/Mesh is for task, mesh, and fragment shaders. |
Shading Language Version | A 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 Profile | A 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 Version | This 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 File | The absolute or relative path to the vertex shader source code. Only visible when Pipeline Mode is set to Graphics. |
Tessellation Control Program File | The absolute or relative path to the tessellation control shader source code. Only visible when Pipeline Mode is set to Graphics. |
Tessellation Evaluation Program File | The absolute or relative path to the tessellation evaluation shader source code. Only visible when Pipeline Mode is set to Graphics. |
Geometry Program File | The absolute or relative path to the geometry shader source code. Only visible when Pipeline Mode is set to Graphics. |
Fragment Program File | The absolute or relative path to the fragment shader source code. Only visible when Pipeline Mode is set to Graphics. |
Compute Program File | The absolute or relative path to the compute shader source code. Only visible when Pipeline Mode is set to Compute. |
Task Program File | The absolute or relative path to the task shader source code. Only visible when Pipeline Mode is set to Task/Mesh. |
Mesh Program File | The absolute or relative path to the mesh shader source code. Only visible when Pipeline Mode is set to Task/Mesh. |
Mesh | A <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. |
Samplers | A <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 Compilation | A 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 Program | A 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. |
Properties are as follows:
Property | Documentation |
---|---|
Visible | Toggles the <Group>'s visible/invisible". Child nodes are not visible when their parent <Group>'s is invisible. |
Collisions | Toggles collision detection on the <Group> node and its children". This is used for runtime export and has no effect in Simdify applications. |
Cull | Toggles view volume culling on/off". modifying this parameter may cause incorrect culling and other unexpected consequences. |
Preserve Camera | This option is undocumented at present. |
Generic Data Source | This option provides the capability to connect a <Group>'s to a node that serves as a generic data source. |
Bounding Box Frozen | Freezes the bounding box at its current size. This is often used as a runtime flag, and modifying this parameter may cause incorrect culling. |
Minimum X | Displays the minimum bounding box coordinate on the X axis. |
Minimum Y | Displays the minimum bounding box coordinate on the Y axis. |
Minimum Z | Displays the minimum bounding box coordinate on the Z axis. |
Maximum X | Displays the maximum bounding box coordinate on the X axis. |
Maximum Y | Displays the maximum bounding box coordinate on the Y axis. |
Maximum Z | Displays the maximum bounding box coordinate on the Z axis. |
Transform Locked | Locks the node and prevents transformation of the node and its children. This is a runtime flag and has no effect in Simdify applications. |
Position X | Displays the node's position on the X axis. |
Position Y | Displays the node's position on the Y axis. |
Position Z | Displays the node's position on the Z axis. |
Orientation X | Displays the node's orientation on the X axis. |
Orientation Y | Displays the node's orientation on the Y axis. |
Orientation Z | Displays the node's orientation on the Z axis. |
Scale X | Displays the node's scale on the X axis. |
Scale Y | Displays the node's scale on the Y axis. |
Scale Z | Displays the node's scale on the Z axis. |
Billboard | Sets 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. |
Properties are as follows:
Property | Documentation |
---|---|
Name | Sets 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. |
Class | Sets the class of the node. |
ID | Sets the ID of the node. This must be unique for each document, but different documents can use the same ID. |
Import Disabled | Determines 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 Disabled | Determines 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). |
Guid | Enumerates the Node's GUID. |